如何打开文件以读取文件的所有字节? [复制]

Posted

技术标签:

【中文标题】如何打开文件以读取文件的所有字节? [复制]【英文标题】:How to open a file to read all bytes of the file? [duplicate] 【发布时间】:2017-06-01 05:08:30 【问题描述】:

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

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

它只输出这个:

[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 [等等............]

【问题讨论】:

使用Arrays.toString(data);... 你想要实现的是将字节数组转换为十六进制字符串,看看this answer 【参考方案1】:

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

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

【讨论】:

检查好输出,它是十六进制的,你提出的不会提供预期的结果【参考方案2】:

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

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

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

【讨论】:

只需将问题标记为重复,而不是使用指向重复问题的链接来回答。

以上是关于如何打开文件以读取文件的所有字节? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python小白学习之路(二十)—打开文件的模式二文件的其他操作

labview如何读取文本文档中某一行的字符串

汇编 x86 从任何文件读取并转义所有特殊字符并以字节为单位获取文件大小

fread,fopen二进制打开图片并复制图片

将 .csv 文件从 URL 读取到 Python 3.x - _csv.Error:迭代器应返回字符串,而不是字节(您是不是以文本模式打开文件?)

Python - 如何打开文件并以字节为单位指定偏移量?