为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我在函数中向指定文件写入int a =10,运行后。目标文件没有显示10,但是调用printHex函数却可以看到打印出10

public static void main(String[] args) throws IOException {
        
        //如果文件不存在,则直接创建,存在则删除后创建
        FileOutputStream out = new FileOutputStream("F:\\java\\wds.txt");
        //这样写,则直接在文件后面添加输出的内容
        //FileOutputStream out = new FileOutputStream("F:\\java\\wds.txt",true);
        //向文件中写入'A'的低字节(后八位)
        out.write('A');
        //写入字符串,应将字符串转换成字符数组
        String s = "十几个ID死了";
        byte[] b = s.getBytes();
        System.out.println(b.length);
        for (byte c : b) 
        {                    
            out.write(c);
        }
        out.write(b);
        //写入整数
        int a = 10;
        for(int i =3;i>=0;i--)
        {
            out.write(a>>>i*8);
        }
        
        out.close();
        
        IOUtils.printHex("F:\\java\\wds.txt");
        
    }

12
65 202 174 188 184 184 246 73 68 203
192 193 203 202 174 188 184 184 246 73
68 203 192 193 203 00 00 00 010

正在回答

2 回答

我也是遇到了这个问题,我知道问题所在,但是现在还没有找到解决的方法,这个问题和前面有一节的是一样的,写入数字会有错误,会乱码,通过我的检测,这个数字写入文件会变成ASCII存储,你可以把数据改一下,对照ASCII码表,就会发现输入的数字是一一对应的。然而我还没有解决的办法。。。。

0 回复 有任何疑惑可以回复我~

16进制10应该是00 00 00 0a

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我在函数中向指定文件写入int a =10,运行后。目标文件没有显示10,但是调用printHex函数却可以看到打印出10

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信