跟著老師打出現異常了,,怎么解決?
public?static?void?main(String[]?args)throws?IOException?{
String?file?=?"demo/dos.dat";
IOUtil.printHex(file);
DataInputStream?dis?=?new?DataInputStream(
new?FileInputStream(file));
int?i=dis.readInt();System.out.println(i);
i=dis.readInt();System.out.println(i);
long?l=dis.readLong();System.out.println(l);
double?d=dis.readDouble();System.out.println(d);
String?s=dis.readUTF();System.out.println(s);
dis.close();
}readUTF那邊有什么問題呢
怎么傳不了圖片啊
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.imooc.io.DisDemo.main(DisDemo.java:20)
第20行就是上面的第10行
2016-10-30
public?static?void?main(String?args[])?throws?IOException{ String?file?=?"demo\\dos.dat"; DataOutputStream?dos?=?new?DataOutputStream( new?FileOutputStream(file)); int?n?=?1;long?m?=?2; String?string?=?"去"; dos.writeInt(n); dos.writeLong(m); dos.writeUTF(string); dos.close(); DataInputStream?dis?=?new?DataInputStream( new?FileInputStream(file)); int?i=dis.readInt(); System.out.println(i); long?l=dis.readLong();System.out.println(l); String?s=dis.readUTF();System.out.println(s); dis.close(); }我這個沒報錯,你試試
2016-10-30
也可以,你是先運行DataOutputStream,再運行DataInputStream的吧
2016-10-30
public?static?void?main(String[]?args)?throws?IOException?{ String?file?=?"demo/dos.dat"; DataInputStream?dis?=?new?DataInputStream(new?FileInputStream(file)); int?i?=?dis.readInt(); System.out.println(i); i?=?dis.readInt(); System.out.println(i); long?l?=?dis.readLong(); System.out.println(l); double?d?=?dis.readDouble(); System.out.println(d); String?s?=?dis.readUTF(); System.out.println(s); dis.close(); }public?static?void?main(String[]?args)?throws?IOException?{ String?file?=?"demo/dos.dat"; DataOutputStream?dos?=?new?DataOutputStream(new?FileOutputStream(file)); dos.writeInt(5);dos.writeInt(10);dos.writeLong(20l);dos.writeDouble(10.5); dos.writeUTF("中國"); dos.close(); IOUtil.printHex(file); }2016-10-30
2016-10-30
那就好,采納吧哈哈哈哈
2016-10-30
莫非是因為你把文件用16進制打印了
2016-10-30
2016-10-30
public?class?DosDemo?{ public?static?void?main(String[]?args)?throws?IOException?{ String?file?=?"demo/dos.dat"; DataOutputStream?dos?=?new?DataOutputStream(new?FileOutputStream(file)); dos.writeInt(10);dos.writeLong(20l);dos.writeDouble(10.5); dos.writeUTF("中國"); ????????dos.close(); IOUtil.printHex(file); }public?static?void?main(String[]?args)?throws?IOException?{ String?file?=?"demo/dos.dat"; DataInputStream?dis?=?new?DataInputStream(new?FileInputStream(file)); int?i?=?dis.readInt(); System.out.println(i); long?l?=?dis.readLong(); System.out.println(l); double?d?=?dis.readDouble(); System.out.println(d); String?s?=?dis.readUTF(); System.out.println(s); dis.close(); }2016-10-30
意思應該是讀到文件結尾還在讀吧,確保讀之前,有字符串寫進去嗎