搜索文件的内容

时间:2013-08-10 21:06:39

标签: java file-io

我没有很多使用文件的经验。我有一个文件。我已将以下内容写入文件

Test 112
help 456
news 456
Friendly 554
  

fileOUT.write(“Test 112 \ r \ n”); //这是我输入数据的示例。

现在,我正在尝试在文件中搜索单词news,并显示该行中包含单词news的所有内容。

这就是我的尝试。

if(fileIN.next().contains("news")){
    System.out.println("kkk");
}

这不起作用。下面确实发现了一个单词新闻,因为它显示KKK,但我没有一个想法如何只显示它被发现的新行。

while(fileIN.hasNext()){
                    if(fileIN.next().contains("Play")){
                        System.out.println("kkk");

                    }
                }

必须显示的是news 456。 谢谢

2 个答案:

答案 0 :(得分:2)

您想致电fileIN.nextLine().contains("news")

如果您还没有,请尝试使用Scanner课程。它通过一些描述符(在这种情况下是新行字符)从流中拆分输入做得很棒。

这是一个简单的代码示例:

String pathToFile = "data.txt";
String textToSearchFor = "news";
Scanner scanner = new Scanner(pathToFile);
while(scanner.hasNextLine()){
    String line = scanner.nextLine();
    if(line.contains(textToSearchFor)){
        System.out.println(line);
    }
}
scanner.close();

这是一个高级代码示例,其功能远远超出您的要求。享受!

//Search file for an array of strings. Ignores case if caseSensitive is false.
public void searchFile(String file, boolean caseSensitive, String...textToSearchFor){
    Scanner scanner = new Scanner(file);
    while(scanner.hasNextLine()){
        String originalLine = scanner.nextLine();
        String line = originalLine;
        if(!caseSensitive) line = line.toLowerCase();
        for(String searchText : textToSearchFor){
            if(!caseSensitive) searchText = searchText.toLowerCase();
            if(line.contains(searchText)){
                System.out.println(originalLine);
                break;
            }
        }
    }
    scanner.close();
}

//usage
searchFile("data.txt",true,"news","Test","bob");
searchFile("data.txt",true,new String[]{"test","News"});

答案 1 :(得分:0)

你可以尝试这段代码......:D

String s = null;
    File file = new File(path);
    BufferedReader in;
    try {
        in = new BufferedReader(new FileReader(file));

        while (in.ready()) {
            s = in.readLine();
            if(s.contains("news")){
            //print something
            }
        }
        in.close();
    } catch (Exception e) {
    }