java-创建文本文件的简单字节偏移索引

时间:2011-07-20 03:15:29

标签: java

我想索引一个非常大的文本文件的每100行及其相应的字节偏移量。当我正在读取文件以使用bufferedreader创建索引时,是否可以确定我所处的字节位置?

3 个答案:

答案 0 :(得分:1)

您可以使用:

public int read(char[] cbuf,
                int off,
                int len)
         throws IOException

并使用返回值int,即读取的字符数,然后将此信息保存在计数器上,这样当您阅读100时:

System.getProperty("line.separator");

您可以使用此计数器获取您所在的字节位置。

答案 1 :(得分:1)

您可以使用RandomAccessFile。使用 readLine 方法获取下一行 N 行文本,然后使用 确定文件中的当前位置getFilePointer 方法。

一个警告是,这无法处理Unicode字符串中的读取。

答案 2 :(得分:0)

使用BufferedReader并不好,除非您可以确定您的行都是ASCII并且换行符是一致的(所有CR + LF或仅所有LF)。我建议你使用BufferedInputStream,然后搜索'\ n'。