这里发我想将几个基本数据类型写入文件,文件里是乱码,然后我通过DataInputStream读取的时候报了EOFException
public static void main(String[] args) throws IOException {
String path = "src/data.txt";
String topath = "读取.txt";
DataInputStream dataInput;
DataOutputStream dataOutput;
dataOutput=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(new File(topath))));
int i=1;
boolean flag=true;
String s="我";
double dou=3.00;
dataOutput.write(i);
dataOutput.writeBoolean(flag);
dataOutput.writeUTF(s);
dataOutput.writeDouble(dou);
dataOutput.flush();
dataOutput.close();
dataInput=new DataInputStream(new BufferedInputStream(new FileInputStream(new File(topath))));
int i1 = dataInput.readInt();
boolean b = dataInput.readBoolean();
String s1 = dataInput.readUTF();
if (s1 instanceof String){
s1=(String)s1;
}
double v = dataInput.readDouble();
System.out.println(i1);
System.out.println(b);
System.out.println(s1);
System.out.println(v);
dataInput.close();
}
Exception in thread "main" java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:197)
at java.io.DataInputStream.readUTF(DataInputStream.java:609)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at com.zheng.CopyFile04.main(CopyFile04.java:37)
想不明白白,来问问大嗯。
能正确读取出文件里的内容,通过控制台输出。感谢解答!
哦,我知道我哪里错了,第一个写入的int类型应该是writeInt。直接write是写入了字节,然后我读取的时候读取的int类型,所以往下读取的时候长度对不上,报了EOFException。感谢为次贴做出思考或浏览过以及回答的人,谢谢!感觉自己好蠢,找了好久。
用新的读取方法 别用那个了