【发布时间】:2015-02-05 08:36:22
【问题描述】:
我在阅读理解数据时遇到问题,当我使用 Parsing (char) 时,数字变成了 ASCII 中的奇怪字符,这是代码:
static void doTestByteFiles() throws IOException {
File file = new File("sample1.data");
FileOutputStream outStream = new FileOutputStream(file); //Warning!!!!
byte[] outByteArray = {10,20,30,40,50,60,70,80,(byte)'J',(byte)'a',(byte)'v',(byte)'a'};
outStream.write(outByteArray);
outStream.close();
FileInputStream inStream = new FileInputStream(file);
int fileSize = (int) file.length();
byte[] inByteArray = new byte[fileSize];
inStream.read(inByteArray);
for (int i = 0; i < fileSize; i++) {
System.out.println((char) inByteArray[i]);
}
inStream.close();
}
结果:
( 2
我期望的结果: 10 20 30 40 50 60 70 80 Ĵ 一种 v 一个
我尝试使用 (byte) 而不是 (char),同样的问题,但 Java 字变成了 ASCII 中的数字,请帮忙?
【问题讨论】:
-
您的期望是有缺陷的。您应该查找一个 ascii 表。
-
你在混合字符和字节......所以退后一步,准确描述你想要做什么。
-
您是否在实际的 ASCII 表中查找过这些值?
-
伙计们,我正在尝试使用 byteArray 来存储数据,然后从 ASCII 表中读取数据,例如 'a' 字母等于 Integer 中的 97,所以我尝试用 97 代替a' 在数组中,但有另一个错误。谢谢
-
这就是我说的;您正在混合字符和字节。 Java 不使用 ASCII 而是使用 Unicode
标签: java file encryption netbeans binary