Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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,我有以下代码,它读取文件并搜索以主题开头的行,然后打印出该行。但我只想阅读包含“主题”的第一行,但目前它获取了所有以“主题”开头的行。我如何配置它以搜索第一个“主题”并打印这一行 br = new BufferedReader(new FileReader("FilePath")); StringBuilder sb = new StringBuilder(); String line = "";

我有以下代码,它读取文件并搜索以主题开头的行,然后打印出该行。但我只想阅读包含“主题”的第一行,但目前它获取了所有以“主题”开头的行。我如何配置它以搜索第一个“主题”并打印这一行

            br = new BufferedReader(new FileReader("FilePath"));
            StringBuilder sb = new StringBuilder();
            String line = "";

            while ((line = br.readLine()) != null) {

                if (line.startsWith("Subject ")) {
                    System.out.println(line);

                }
            }
利用休息;声明

br = new BufferedReader(new FileReader("FilePath"));
            StringBuilder sb = new StringBuilder();
            String line = "";

            while ((line = br.readLine()) != null) {

                if (line.startsWith("Subject ")) {
                    System.out.println(line);
                    break;
                }
            }

您应该尝试使用正则表达式来查找所需的 i、 e.在您的案例中类似于
“Subject*\n”

查看这个关于Regex的非常好的教程:www.vogella.com/tutorials/JavaRegularExpressions/article.html

您并没有停止循环,所以它将一直运行到最后一行

试试这个

 if (line.startsWith("Subject ")) {
   System.out.println(line);
   break; // break the lop on success match
 }

使用ArrayList,您可以保存以“Subject”开头的每一行,并可以遍历所有行。您可以根据需要使用它

    ArrayList<String> list = new ArrayList<String>(); 
    br = new BufferedReader(new FileReader("FilePath"));
    StringBuilder sb = new StringBuilder();
    String line = "";

    while ((line = br.readLine()) != null) {

        if (line.startsWith("Subject ")) {
            list.add(line);

        }
    }
    System.out.println(list.get(0);
ArrayList list=new ArrayList();
br=新的BufferedReader(新的文件读取器(“文件路径”));
StringBuilder sb=新的StringBuilder();
字符串行=”;
而((line=br.readLine())!=null){
if(第行开始,以“主题”)){
列表。添加(行);
}
}
System.out.println(list.get(0);

我不认为我需要存储它们并获取第一行