1

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

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");
}

这不起作用。以下确实找到了一个单词 news,因为它显示了 KKK,但我不知道如何仅显示找到它的新闻所在的行。

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

                    }
                }

必须显示的是news 456. 谢谢你

4

2 回答 2

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"});
于 2013-08-10T21:11:02.157 回答
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) {
    }
于 2013-08-10T21:11:58.307 回答