Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取文件,获取当前位置并向后读取_Java_File - Fatal编程技术网

Java 读取文件,获取当前位置并向后读取

Java 读取文件,获取当前位置并向后读取,java,file,Java,File,我使用BufferedReader类通过逐行读取来搜索大文件中的事件 找到事件时,如何获取当前位置? 那么,如何从该位置开始反向读取文件 我确实在网上搜索了一致的解决方案,但没有找到。publicstaticvoidmain(String[]args)抛出异常{ public static void main(String[] args) throws Exception { FileReader fr = new FileReader("sample.txt"); Buffer

我使用BufferedReader类通过逐行读取来搜索大文件中的事件

找到事件时,如何获取当前位置? 那么,如何从该位置开始反向读取文件

我确实在网上搜索了一致的解决方案,但没有找到。

publicstaticvoidmain(String[]args)抛出异常{
public static void main(String[] args) throws Exception {
    FileReader fr = new FileReader("sample.txt");
    BufferedReader reader = new BufferedReader(fr);
    String line = "";

    ArrayList<String> linee = new ArrayList<String>();

    while ((line = reader.readLine()) != null) {
        if (line.equals("bb"))
            break;
        linee.add(line);

    }

    reader.close();
    for (int i = linee.size() - 1; i >= 0; i--)
        System.out.println(linee.get(i));

}
FileReader fr=新的FileReader(“sample.txt”); BufferedReader读取器=新的BufferedReader(fr); 字符串行=”; ArrayList linee=新的ArrayList(); 而((line=reader.readLine())!=null){ 如果(行等于(“bb”)) 打破 linee.添加(行); } reader.close(); 对于(int i=linee.size()-1;i>=0;i--) System.out.println(linee.get(i)); }
到目前为止,您尝试了什么?你能添加一些代码吗?请检查此项以及如何编写并提出一个好问题。@Yaroslav:我相信问题已经很清楚了:我不知道如何反向读取文件。因此,这不是一个代码编写服务,这正是您所寻找的。我指出了一个链接,现在我重复。是一个编码问题,所以如果你尝试了一些东西,不管它是否错了,至少它显示了一些努力,而不是“我搜索了很多代码”。你是一个程序员,你应该解决一个问题。是的,您可以在这里搜索帮助,但不能搜索完整的解决方案。谢谢您的回答。在我处理2Gb文件时,您认为这个解决方案不会有性能问题吗?再说一次,您有一个有用的答案,这取决于您测试它,看看它是否能解决您的问题。如果没有,那么试着在这个基础上提出一个新的代码。如果你在几次尝试后仍然卡住了,那么打开一个新问题,添加代码,解释你尝试了什么,然后确定你会有更多的答案。