如何打开文件来读取文件的所有字节?

时间:2017-01-17 08:16:25

标签: java

我想读取文件中的所有字节,但是当我这样做时

  var wordsMap = new scala.collection.mutable.HashMap[String, Int]
  val in = new Scanner(new java.io.File("/home/artemvlasenko/Desktop/myfile.txt"))

  while (in.hasNext) {
    val word = in.next()
    val count = wordsMap.getOrElse(word, 0)
    wordsMap(word) = count + 1
    in.next()
  }

  println(wordsMap.mkString(", "))

它仅输出:

  

[B @ 6ab1bd82

而不是输出像这样的字节数组:

  

249 4646 ac98 0200 5741 5645 666d 7420   1000 0000 0100 0100 44ac 0000 8858 0100   0200 1000 6461 7461 8898 0200 7900 5200   5600 3b00 3100 0c00 6500 4000 2500 7a00   2d00 0c00 5400 5100 2500 1200 feff 0d00 [etc ..............]

2 个答案:

答案 0 :(得分:3)

使用Arrays.toString()。打印数组会打印其toString(),默认为Object toString()。

Path fileLocation = Paths.get("./env.wav");
byte[] data = Files.readAllBytes(fileLocation);
System.out.println(Arrays.toString(data));

答案 1 :(得分:0)

您正在直接打印阵列。当前打印的值是数组的内存位置。

如果你想要数组的内容,你需要将其转换为可打印的内容或循环内容并打印每个字节(将每个字节转换为可打印的值)。

一种方法是: how to print the data in byte array as characters