import java.io.*;
public class Main2 {
    public static void main(String[] args) throws Exception {
        DataOutputStream dos = new DataOutputStream(new FileOutputStream("Text.t"));
        dos.writeByte(10101010);
        DataInputStream dis = new DataInputStream(new FileInputStream("Text.t"));
        int line;
        System.out.println(dis.readByte());
        dos.close();
        dis.close();
    }
}


我试图在我创建并打印其内容的二进制文件中写入10101010。
当我运行它时,它显示18 ..为什么?为什么不10101010?此外,当我使用文本板打开Text.t文件时
它包含此“垃圾”,而不是10101010。

最佳答案

10101010%256 =18。这是您创建的整数的低字节。文本文件带有“垃圾”文件,因为您将其保存为二进制数据而不是文本。

如果要将数字保存为二进制字符串,则应使用FileWriterFileReader而不是DataInput / OutputStream,并使用Integer.toBinaryString(int)和Integer.parseInt(str,2);

07-26 09:34