源代码:importjava.io.*;classTest2{publicstaticvoidmain(String[]args)throwsException{RandomAccessFilerfa=newRandomAccessFile("1.txt","rw");Students1=newStudent(1,"zhangsa...
源代码:
import java.io.*;
class Test2{
public static void main(String[] args)throws Exception{
RandomAccessFile rfa=new RandomAccessFile("1.txt","rw");
Student s1=new Student(1,"zhangsan",99.8);
Student s2=new Student(2,"lisi",95.0);
Student s3=new Student(3,"wangwu",88.5);
s1.putter(rfa);
s2.putter(rfa);
s3.putter(rfa);
Student s=new Student();
rfa.seek(0);
for(long i=0;i
s.getter(rfa);
System.out.println(s.num+":"+s.name+":"+s.sorce);
}
rfa.close();
}
}
class Student{
int num;
double sorce;
String name;
Student(){
}
Student(int num,String name,double sorce){
this.num=num;
this.name=name;
this.sorce=sorce;
}
public void putter(RandomAccessFile rtf) throws IOException{
rtf.writeInt(num);
rtf.writeUTF(name);
rtf.writeDouble(sorce);
}
public void getter(RandomAccessFile rtf) throws IOException{
num=rtf.readInt();
name=rtf.readUTF();
sorce=rtf.readDouble();
}
}
为什么执行后还有这样的错误出来:
1:zhangsan:99.8
2:lisi:95.0
3:wangwu:88.5
Exception in thread "main" java.io.EOFException
at java.io.RandomAccessFile.readUnsignedShort(RandomAccessFile.java:656)
at java.io.DataInputStream.readUTF(DataInputStream.java:545)
at java.io.RandomAccessFile.readUTF(RandomAccessFile.java:875)
at Student.getter(Test2.java:46)
at Test2.main(Test2.java:17)
麻烦哪位高手指点一下。
展开