【发布时间】:2020-12-27 16:16:39
【问题描述】:
为什么我通过用 java 读取文件内容作为字节数组得到以下输出?
File f = new File( "exampleData.xml" );
byte[] data = getBytesFromFile("data.xml");
for (byte zeichen : data) {
char zzeichenCharacter = (char)zeichen;
System.out.println(zzeichenCharacter + " : " + String.valueOf(zeichen));
}
输出:
: -17
ᄏ : -69
: -65
< : 60
? : 63
当我将文件 exampleData.xml 中的内容复制到名为 exampleDataCopy.xml 的第二个文件并使用上面相同的代码时,我得到了不同的输出:
< : 60
? : 63
x : 120
m : 109
l : 108
【问题讨论】:
-
文件有什么编码?
-
顺便说一句,
String.valueOf(0xff & zeichen)会给出无符号字节,这可能是一种更“自然”的打印字节的方式。
标签: java arrays controls byte special-characters