wozhihaoluandale 2022-04-26 11:31 采纳率: 66.7%
浏览 40
已结题

求解答DataInputStream和DataOutputStream读取文件,整不明白了

问题遇到的现象和发生背景

这里发我想将几个基本数据类型写入文件,文件里是乱码,然后我通过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)
我的解答思路和尝试过的方法

想不明白白,来问问大嗯。

我想要达到的结果

能正确读取出文件里的内容,通过控制台输出。感谢解答!

  • 写回答

2条回答 默认 最新

  • wozhihaoluandale 2022-04-26 11:56
    关注

    哦,我知道我哪里错了,第一个写入的int类型应该是writeInt。直接write是写入了字节,然后我读取的时候读取的int类型,所以往下读取的时候长度对不上,报了EOFException。感谢为次贴做出思考或浏览过以及回答的人,谢谢!感觉自己好蠢,找了好久。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月4日
  • 已采纳回答 4月26日
  • 创建了问题 4月26日

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真