跟着老师打出现异常了,,怎么解决?

来源:4-4 字节流之数据输入输出流

Juneava

2016-10-30 16:26

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行


写回答 关注

9回答

  • _lune
    2016-10-30 21:16:58
    已采纳
    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();
    }

    我这个没报错,你试试

    Juneav... 回复Juneav...

    不去l我又运行出来了

    2016-10-30 21:49:54

    共 6 条回复 >

  • _lune
    2016-10-30 22:02:41

    也可以,你是先运行DataOutputStream,再运行DataInputStream的吧

    _lune 回复Juneav...

    嗯搞懂了就好

    2016-10-30 22:06:00

    共 2 条回复 >

  • Juneava
    2016-10-30 21:58:56
    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);
    	}


  • _lune
    2016-10-30 21:56:08

    http://img.mukewang.com/5815fbf200019f8500530090.jpg。。。。。。。。。。。。。。。。。

    Juneav...

    你运行下我的。。。麻烦你了

    2016-10-30 21:59:14

    共 1 条回复 >

  • _lune
    2016-10-30 21:50:26

    那就好,采纳吧哈哈哈哈

    Juneav...

    你连写两个int试试

    2016-10-30 21:53:15

    共 1 条回复 >

  • _lune
    2016-10-30 21:49:19

    莫非是因为你把文件用16进制打印了

  • _lune
    2016-10-30 21:47:44

    http://img.mukewang.com/5815f9f10001c2ef00830071.jpg我运行出来了,,,尴尬

    Juneav...

    我也运行出来了,,,,

    2016-10-30 21:49:25

    共 1 条回复 >

  • Juneava
    2016-10-30 21:44:11
    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();
    	}


  • _lune
    2016-10-30 21:14:54

    意思应该是读到文件结尾还在读吧,确保读之前,有字符串写进去吗

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题