V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
AllOfMe
V2EX  ›  问与答

为啥 Java 写入十六进制的文件,内容一直以 0a 结尾呢?

  •  
  •   AllOfMe · May 5, 2018 · 1711 views
    This topic created in 2928 days ago, the information mentioned may be changed or developed.
        @Test
        public void testWrite() throws IOException {
            File file = new File("/home/my.test");
            file.createNewFile();
            int b = 0x1B, a = 0x78, c = 0x6f, d = 0x3f;
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(a);
            fos.write(b);
            fos.write(c);
            fos.write(d);
            fos.close();
        }
    
    

    nothing 如图和代码,我只是想写入四个十六进制的数值进去,并且在 vim 下用%!xxd 下能看到的十六进制的数值只有 4 个。但实际上我看到的却有五个,多了一个0a,这是啥特殊情况呢?求教!

    4 replies    2018-05-05 10:19:22 +08:00
    Shura
        1
    Shura  
       May 5, 2018
    e9e499d78f
        2
    e9e499d78f  
       May 5, 2018
    vim 自动加的换行符吧
    AllOfMe
        3
    AllOfMe  
    OP
       May 5, 2018
    @Shura 我找到问题所在了,也和你说的换行符一样。vim 打开二进制需要 vi -b xxx,不然的话就会自动追加 0a 的
    AllOfMe
        4
    AllOfMe  
    OP
       May 5, 2018
    @e9e499d78f 对的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6258 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 02:11 · PVG 10:11 · LAX 19:11 · JFK 22:11
    ♥ Do have faith in what you're doing.