如何在java中读取.b扩展名的文件?

时间:2017-02-15 16:09:03

标签: java file input readfile

我必须使用扩展名为.b的文件。实际上,该文件包含使用Caffe框架从fc7层提取的Deep CNN图像特征。每行包含ASIN(亚马逊标准识别号),后跟4076个可视特征(其中每个特征由十进制数表示)。但是,当我尝试读取此文件时,该文件的输出格式如下: - “B000IG9NS6Œ¹?{^ @Á9c?ÓÞÀ> e¢>Œ¹{?jM”,它继续这样。

请有人告诉我如何通过阅读此类文件获得正确的输出?

1 个答案:

答案 0 :(得分:0)

无论是二进制文件还是文本文件及其具有的文件扩展名,您都可以通过以下方式读取文件字节:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;

Path path = Paths.get("path/to/file/file.b");
byte[] data = Files.readAllBytes(path);

<强>更新

尝试上述解决方案后,OP出现内存不足错误。从@ Marco13对该问题的评论,看起来您的二进制文件大小为600 Mb。这可能是你获得OOME的原因。但是这个错误与你如何在java中读取二进制文件的原始问题声明无关。您可以使用JVM标志Direct Memory-XX:MaxDirectMemorySize=<size>指定更高的内存大小。这里指定大约700 MB的大小是更安全的一面。这将解决您的其他OOME问题。