java - 如果我使用 FileReader 读取文件,我怎么知道我在文件中的位置?

标签 java

我有一些这样的代码:

FileReader fr = new FileReader(file);
BufferedReader reader = new BufferedReader(fr);
for (int i=0;i<100;i++) 
{
   String line = reader.readLine(); 
   ...
}

// at this point I would like to know where I am in the file.
// let's assign that value to 'position' 
// then I would be able to continue reading the next 100 lies (this could be done later on ofcourse... )
// by simply doing this: 

FileReader fr = new FileReader(file);
fr.skip(position); 
BufferedReader reader = new BufferedReader(fr);
for (int i=0;i<100;i++) 
{
   String line = reader.readLine(); 
   ...
}

我不知道如何获取/计算“位置”的值。

两件事: 我显然没有固定长度的文件(即:每一行都有不同的长度) 我需要让它在任何系统(linux、unix、windows)上运行,所以我不确定我是否可以假设换行符的长度(无论是一个还是两个字符)

非常感谢任何帮助。

谢谢,

最佳答案

如果您可以保持文件打开,您可以尝试使用 mark()reset()。如果您必须关闭文件并重新打开,请尝试 FileInputStream.getChannel().position()FileInputStream.skip()

关于java - 如果我使用 FileReader 读取文件,我怎么知道我在文件中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058135/

相关文章:

java - 静态上下文无法访问收集器中的非静态

java - 粘贴文本后编辑文本工作很奇怪

java - 当每个实例传递唯一值时,自定义 "Node"类的两个实例都会打印相同的值

java - 使用 TestSuite 跨包收集测试用例

java session - session 何时实际创建?

java - Spring Security 中基于角色的访问拒绝处理 - 如何?

java - 将 @Named 、 @Stateful 注入(inject)到 @Singleton EJB

java - 在 bukkit 插件中找不到主类

java mongo 日期搜索

java - 我们可以跳过 testng xml 中的 java @AfterClass 方法吗