2

我正在寻找关于什么可能是写入/读取大型(10,000,000+)组键/值对的最有效方法的想法,每个键/值对由一个任意长度的字符串后跟一个长整数到/从一个文件组成爪哇。任何建议都非常感谢。

4

3 回答 3

2

这就是属性 API 的用途:

http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html

请注意,有一些方法可以对 InputStreams、OuputStreams、PrintStreams 以及不同类型的 Readers 和 Writers 进行操作。

于 2012-11-02T20:59:39.390 回答
0

使用 DataInput/OutputStream 包装一个 BufferedInput/OuputStream 包装一个 FileInput/OutputStream 对我来说产生可接受的性能。感谢所有的建议。

于 2012-11-05T20:48:55.467 回答
0

假设键和值由​​一些分隔符分隔。

  1. BufferedReader使用'readLine()方法读取整行。
  2. 按分隔符拆分字符串并随身携带地图!

这是最简单且极其有效(如果不是最)的方式!

请参阅它的 commons-io 包装器:)

只是不要显式地 flush(),让 close() 方法来做吧:)

于 2012-11-02T21:05:16.343 回答