【发布时间】:2014-10-10 08:54:53
【问题描述】:
我正在解决 Programming Pearls,第 2 版,第 1 列中的问题。其中一个问题涉及编写一个程序,该程序仅使用大约 1 兆字节的内存来将文件的内容存储为每个位的位数组表示文件中是否存在 7 位数字。由于 Java 是我最熟悉的语言,因此我决定使用它,尽管作者似乎已经考虑过 C 和 C++。
由于我为了解决我正在处理的问题而假装内存是有限的,所以我想确保读取文件的过程完全没有缓冲。
我认为InputStreamReader 会是一个很好的解决方案,直到我在Java documentation 中读到这个:
为了实现字节到字符的高效转换,可能会从底层流中提前读取比满足当前读取操作所需的更多的字节。
理想情况下,只会从流中读取必要的字节——换句话说,我不想要任何缓冲。
【问题讨论】:
-
我真的不明白这个问题的动机。如果您的主要数据结构是 1MB,那么几千字节的输入缓冲区不会杀死您。