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。这是您创建的整数的低字节。文本文件带有“垃圾”文件,因为您将其保存为二进制数据而不是文本。
如果要将数字保存为二进制字符串,则应使用FileWriter
和FileReader
而不是DataInput / OutputStream,并使用Integer.toBinaryString(int)和Integer.parseInt(str,2);