java - 在该行中搜索文本时如何返回该行

标签 java file search text line

我想获取文件的行,在该行中搜索特定文本,然后返回该行以及文件中具有相同特定文本的所有其他行。

到目前为止我有这个:

public String searchText(String text, String file)
{
    StringBuffer sb = new StringBuffer();

    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line = null;

        while((line = br.readLine()) != null)
        {
            while(line.indexOf(text) > 0)
            {
                sb.append(line);
            }
        }

        return sb.toString();
    } catch (Exception e) {
        e.printStackTrace();        
    }
    return sb.toString();
}

它必须是我需要时可以使用的功能。 我希望你们明白我想做什么,并提前致谢。

最佳答案

看起来您的代码非常好,并且您正在以正确的方式解决问题。您只需要一些东西来整理它,例如用 \n 分隔每一行。换行符,并调用 br.close();当你读完文件后。我也不确定你为什么使用 while(line.indexOf(text) > 0) - 它确实应该是 if声明。

根据找到这些行后您想要如何使用它们,您可能会发现使用 ArrayList<String> 更好。只是add()与其匹配的行(而不是当前的 StringBuffer )。如果您要在从方法返回时单独使用每一行,这可能是一个更好的解决方案。

关于java - 在该行中搜索文本时如何返回该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153310/

相关文章:

java - MAC 中的 TableViewer ->setWidth(0) 问题

PhP/MySQL 在页面之间存储用户搜索以便用户可以返回到它们

java - 在设置布局之外添加元素(即 JLabels)

java: 新文件 ("", "name") != 新文件 ("name") ? (带空字符串的文件构造函数)

python 打开相对文件夹中以.txt结尾的所有文件

java - 如何确定使用 PrintWriter 打开文件的正确路径?

jquery - 如何在 SQL 中赋予相似语句优先级

django cms 搜索多个站点?

java - 如何在Windows中设置sbt代理

java - Play Framework : parse "CompletionStage" (Java8) response