我有一些方法正在读取和写入我的程序中的文件但是当我打电话给他们时,他们正在冻结我的程序,使整个框架没有响应。
以下是我的方法:
public static int read() throws IOException
{
int x = 0;
boolean eof = false;
File in = new File("file.dat");
RandomAccessFile rd = new RandomAccessFile(in, "rw");
try
{
do
{
x = rd.readInt();
} while (!eof);
}
catch(IOException ex)
{
rd.close();
}
return x;
}
public static void first() throws IOException
{
try
{
File out = new File("file.dat");
RandomAccessFile rd = new RandomAccessFile(out, "rw");
if (out.exists())
{
rd.seek(0);
}
rd.writeInt(10000000);
rd.close();
}
catch (IOException ex)
{
}
}
public static int checkBest() throws IOException
{
int new= 0, old;
boolean eof = false;
File in = new File("file.dat");
RandomAccessFile rd = new RandomAccessFile(in, "rw");
try
{
do
{
old= rd.readInt();
System.out.print("" + old);
if (old > myTime) // myTime is a timer variable
{
new = myTime;
}
else
new = old;
} while (!eof);
}
catch(IOException ex)
{
rd.close();
}
System.out.print(new);
return new;
}
public static void addBest(int x) throws IOException
{
boolean eof = false;
File in = new File("file.dat");
RandomAccessFile rd = new RandomAccessFile(in, "rw");
try
{
do
{
rd.writeInt(x);
} while (!eof);
}
catch(IOException ex)
{
rd.close();
}
}
我在addBest方法中使用了最好的检查,因此它显示为addBest(checkBest);当我使用调用read()或addBest的菜单选项时,它会导致窗口无响应。
我觉得我错过了一些显而易见的东西,但我似乎无法在网上找到任何信息,所以非常感谢任何帮助。