程序代码:
public class RandomAccessTest {
public static void main(String[] args) throws IOException {
try {
RandomAccessFile raf = new RandomAccessFile("d://data//wof.txt",
"rw");
System.out.println("请输入20个整数");
int k[] = new int[20];
for (int i = 0; i < 20; i++) {
/**
System.out.println("输入第" + (i + 1) + "个");
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
String m = br.readLine();
k[i] = Integer.parseInt(m.trim());
System.out.println(k[i]);
*/
//raf.writeInt(k[i]);
raf.writeInt(i);//不需要从键盘输入,直接输入就可以了
}
raf.seek(12);
while (true) {
try {
int r =(int) raf.readInt();
System.out.println(r);
} catch (EOFException e) {
break;
}
}
} catch (RuntimeException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
题目要求从该文件的第12个字节开始,而楼主是从第一个字节开始raf.seek(1);
所以当然错误了。你从第一个字节开始读取,就会产生错误。因为int为4个字节的。
----------------解决方案--------------------------------------------------------
你查查readInt的用法就知道了。
----------------解决方案--------------------------------------------------------