我在阅读理解数据时遇到问题,当我使用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 &LT; F P Ĵ 一个 v 一个
结果我期待: 10 20 三十 40 50 60 70 80 Ĵ 一个 v 一个
我尝试使用(字节)代替(字符),同样的问题,但Java字成为ASCII中的数字,请帮忙吗?
答案 0 :(得分:0)
byte []数组中的数字被解释为字节值。你必须编写Intergers并将它们转换为数组内的byte。