像这样写入二进制文件时:
byte[] content = {1,2,3};
FileOutputStream output = new FileOutputStream("data.bin");
DataOutputStream fileName = new DataOutputStream(output);
fileName.writeInt(content.length);
for (int i = 0; i < content.length; i++)
{
fileName.writeInt(content[i]);
System.out.println(content[i]);
}
fileName.close();
使用 FileInputStream/DataInputStream 和 .readInt() 读取它时,一切正常。(如果我使用 .skip(4); 因为第一个似乎包含一个值,即写入的位数)
但是,如果使用扫描仪将 byte[] 内容替换为输入。
java.util.Scanner in = new java.util.Scanner(System.in);
String inputAsString = in.nextLine();
byte[] content = inputAsString.getBytes();
我注意到它以十进制写入二进制文件。1 变成 49,2 是 50,3 是 51 ...我的问题是我如何将它读回 1、2、3,就像使用硬编码字节数组的第一个示例一样。