问题描述
在这个项目中,我想将每个新数字放在随机访问文件的开头。但是seek()方法删除文件中的所有其他数字。我不知道为什么。
package first;
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException,InterruptedException {
File file = new File("test.dat");
RandomAccessFile raf = new RandomAccessFile(file,"rw");
raf.setLength(0);
for (int i = 0; i < 10; i++) {
raf.writeInt(i);
raf.seek(0);//setting the pointer to the beginning of the file
}
//printing the numbers
System.out.println(raf.length());
for (int i = 0; i < 10; i++) {
raf.seek(i * 4);
System.out.println(raf.readInt());
}
}
}
控制台输出为
Exception in thread "main" java.io.EOFException
at java.base/java.io.RandomAccessFile.readInt(RandomAccessFile.java:846)
at liangweb/chapter37.Demo.main(Demo.java:20)
4
9
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)