在Java中正确读取二进制文件中的数据

时间:2014-12-07 17:10:08

标签: java file encryption netbeans binary

我在阅读理解数据时遇到问题,当我使用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中的数字,请帮忙吗?

1 个答案:

答案 0 :(得分:0)

byte []数组中的数字被解释为字节值。你必须编写Intergers并将它们转换为数组内的byte。