我知道这是用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 );
}