文件到字节数组

时间:2013-02-12 04:30:06

标签: java bytearray

我使用过这个主题:File to byte[] in Java 这是我的代码:

try {
  Path path1 = Paths.get(path + fileName);
  byte[] fileAsByte = Files.readAllBytes(path1);
  System.out.println("Byte : " + fileAsByte.toString());
} catch (FileNotFoundException e) {
  System.out.println("File Not Found.");
  e.printStackTrace();
} catch (IOException e1) {
  System.out.println("Error Reading The File.");
  e1.printStackTrace();
} catch (OutOfMemoryError e3) {
  System.out.println("Out of Memory");
  e3.printStackTrace();
  }

此代码不会触发任何异常,但输出仍为:

Byte : [B@60f17a2f

这对我来说似乎很无效。我很确定我做了一个愚蠢的错误,但我已经尝试解决这个问题已经有三个小时了,我可以用一些新鲜的眼睛来看它。

感谢。

2 个答案:

答案 0 :(得分:4)

您不能将数组直接转换为String并让人眼可读。它打印出[(表示“数组”),然后是B(对于byte),然后是@及其标识哈希码。

要获取数组中的字节列表,请改用静态Arrays.toString()方法:

System.out.println("Byte : " + java.util.Arrays.toString(fileAsByte));

(如果字节代表输出字符串的字符,请使用@iTech的解决方案。)

答案 1 :(得分:4)

您应该创建一个使用String初始化的byte[]实例,例如

System.out.println("Byte : " + new String(fileAsByte));

您还可以指定编码,例如new String(fileAsBytes,"UTF-8");