これは mark() と reset() で行われることを知っています。しかし、私はファイルの読み取りに非常に慣れていないため、コードが機能せず、私の間違いはおそらくかなり明白で愚かであることを知っています。私は物事を動かそうとしましたが、うまくいきませんでした。私のコードの目標は、最初にヌル行が見つかったときに joption ペインをポップアップし (まだ行っていません)、ファイルの先頭に戻ることです。これはおそらくばかげた質問ですが、誰かが私を助けてくれれば、本当に感謝しています。ちなみに、問題は、最後の行が読み取られた後にスローされるIOExceptionを取得しています(jbuttonがクリックされるたびにこのメソッドを実行します)。
public static void fileReader( String inputFile , JTextField array[] )
{
/** Local Constants **/
final String NOT_READABLE = "File not readable!!";
final String IO_ERROR = "Input/Output Error!!";
/** Local Variables **/
String line;
if ( inStream == null )
{
fileOpen( inputFile );
}
if ( isReadableFile( inputFile ) )
{
try
{
line = inStream.readLine();
inStream.mark( 64 );
if ( line != null )
{
int j = 0;
for ( int i = 0; i < line.length(); i++ )
{
if ( Character.isDigit( line.charAt( i ) ) )
{
if ( j < array.length )
array[ j ].setText( line.charAt( i ) +
MagicSquareGUI.BLANK );
j++;
}
}
}
else
{
inStream.close();
inStream.reset();
}
}
catch ( IOException e )
{
System.out.println( IO_ERROR );
}
catch ( Exception e )
{
System.out.println( ERROR );
}
}
else
System.out.println( NOT_READABLE );
}