【发布时间】:2015-09-13 05:32:07
【问题描述】:
如何读取从 X 数行开始的文本文件? 我可以开始阅读文件并且什么都不做,直到到达 X 行,但我想知道是否有更好的方法来做到这一点。
【问题讨论】:
-
我不确定是否可以在文件中途打开流。吃第一行
X - 1有什么问题吗?
标签: java oop file-management randomaccessfile
如何读取从 X 数行开始的文本文件? 我可以开始阅读文件并且什么都不做,直到到达 X 行,但我想知道是否有更好的方法来做到这一点。
【问题讨论】:
X - 1 有什么问题吗?
标签: java oop file-management randomaccessfile
一般来说,除非您有一个预先构建的行长索引或文件中的行长已知是固定的,否则您无法执行此操作。您可以在读取随机访问文件时跳过给定数量的 bytes,但为了跳过给定数量的 lines,您应该计算换行符(如 \n) .文件系统不会在任何地方存储换行位置。
【讨论】:
您正在寻找的是RandomAccessFile。您可以像下面的示例一样使用它。但是你需要知道你想读的位置。我相信你可以玩一下它并找到如何使用它。
private static byte[] readFromFile(String filePath, int position, int size) throws IOException {
RandomAccessFile file = new RandomAccessFile(filePath, "r");
file.seek(position);
byte[] bytes = new byte[size];
file.read(bytes);
file.close();
return bytes;
}
更多信息: http://www.tutorialspoint.com/java/io/java_io_randomaccessfile.htm
http://examples.javacodegeeks.com/core-java/io/randomaccessfile/java-randomaccessfile-example/
【讨论】: