我需要阅读的文件是ASCII并将其应用于某些功能之前,转换为十六进制(搜索特定卡拉科特)读取较快文件及将其转换为十六进制
要做到这一点,我读文件,将其转换为十六进制并写入一个新文件。然后我打开我的新的十六进制文件,并应用我的功能。
我的问题是,它使太多的时间来阅读和转换它(大约为9MB文件8秒)
我的阅读方法是:
public static void convertToHex2(PrintStream out, File file) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
int value = 0;
StringBuilder sbHex = new StringBuilder();
StringBuilder sbResult = new StringBuilder();
while ((value = bis.read()) != -1) {
sbHex.append(String.format("%02X ", value));
}
sbResult.append(sbHex);
out.print(sbResult);
bis.close();
}
你有什么建议,使它更快?
出于兴趣,您为什么需要将其转换为十六进制格式? –
为什么你必须将转换后的数据写入文件?即使您的搜索功能坚持使用十六进制(如果您在搜索十六进制89ABCD序列中的BC时必然会导致问题),也不一定需要在文件中使用它。 I/O时间是惩罚。 – laune
如果发生I/O异常,您的代码将泄漏资源。 – Raedwald