2011-09-13 45 views
1

我在通过java编写的文本文件中存储大量信息。我有两个与此有关的问题:以二进制或字节码写入文件

  1. 是否有任何效率提升写入字符串的二进制或字节码?

  2. 我会用什么来将数据类型写入文件。

我已经有一个基于字符串的设置,但我想比较,至少知道如何写字节码或二进制文件。

当我读入文件时,它会再次被翻译成字符串,但根据我的研究,如果我直接将文件写入字节码,它会删除字符串和代码之间翻译的两端添加的过程,文件和阅读它。


超有大约只用弦乐反正好点,但我仍然有兴趣在如何如何,如果写在文件中不同的数据类型。

换句话说,我是否仍然可以使用FileReader和BufferedReader来读取并转换回字符串,或者还有其他的东西需要使用。还使用BinaryWriter,它仍然只是我使用的FileWriter类?

+1

我的第一个想法是,你会加倍所需的存储量(除非你写了很多非ASCII文本)。对于ASCII文本,UTF-8每个字符需要1个字节,但是如果您编写了一个原始字符串,则每个字符需要2个字节。 – cHao

+1

此外,除非你在谈论序列化,否则不要写“字节码”中的字符串。即使那样,它也不是那样的。字节码是JVM指令。 – cHao

+0

@cHao。总是善于学习新的:P。那么这就把它留给直接的二进制呢? – Andy

回答

0

如果你想写在“二进制”,并且你想节省空间,为什么不使用jdk压缩它?满足您的所有要求。

+0

我对空间方面如此不感兴趣,我对减少为了速度的兴趣而需要读取的处理能力的数量感兴趣,空间是次要的,甚至在地图上,因为我没有真正关心它。 – Andy

+0

那么你的问题是模糊的;如果您正在编写字符串数据,并且正在读取字符串数据,则任何翻译步骤都需要更多时间。在某些文件大小下,数据量将成为门控因子,压缩/解压缩将会更快。读取和写入数据不是一项CPU密集型任务,但在某些情况下,总体上可以减少正在读取/写入的数据量。 –

+0

Java总是将字符串转换为另一种形式,我很确定,并且我知道String字符= 2个字节,使空间加倍,如果我没有弄错,结果是它需要两倍的时间才能读取。但是,听起来好像我错了...... P:感谢您的帮助,我会再等一会儿,看看答案是否能解决我问题的第二部分。 – Andy