2017-08-15 50 views
0

我有一个带.ats扩展名的二进制文件,我应该将它转换为Byte数组。文件转换成字节流后,我应该跳过一些字节。文件编码在WINDOWS-1255中。将.ats扩展名的二进制文件转换为字节数组

是否在代码片段正确的方式将其转换为字节流?

Path path = Paths.get(fileName); byte[] buffer = new byte[SIZE]; buffer = Files.readAllBytes(path);

回答

1

无需打开流为Files.readAllBytes(Path)将通过最有效的方式做的一切。

读取任何文件的字节可以做到的,就像这样:

byte[] bytes = Files.readAllBytes(Paths.get(fileName)); 

编辑:

该阵列可以被传递到ByteArrayInputStream构造函数来获取流:

new ByteArrayInputStream(bytes); 
+0

谢谢 。我删除了inputstream部分。由于文件使用WINDOWS-1255编码,它将对字节的解释方式产生任何影响。我收到一份文件,说明标题的前两个字节包含有关标题长度的信息。这是否意味着我应该读取字节数组的前两个字节来获取标题长度。我正试图从基于文档的文件中提取数据。我的问题可能是原始的,但我无法提取正确的数据 – user3065525

+0

是的,您可以使用read(byte [] b,int off,int len)方法简单地读取ByteArrayInputStream的字节。 – glf4k

相关问题