Grep输出到文件(Java)

时间:2014-04-01 20:48:53

标签: java bash

如何使用Java将grep的输出存储在文件中?

我正在使用Runtime和Process来执行grep,然后我读取了InputStream

BufferedReader stdInput = new BufferedReader(new InputStreamReader(pr.getInputStream()));

现在我想将grep的内容存储在一个文件中,但我得到一个空文件。

String s = null;
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}

我正确地看到了grep的输出。但是,当我尝试将其写入文件时,该文件为空。

PrintWriter writer = null;
writer = new PrintWriter("grep__output", "UTF-8");
writer.println(s);
writer.close();

另外,我尝试直接写入上面的文件(之前创建文件),但它是一样的。

1 个答案:

答案 0 :(得分:1)

你需要让循环中的println读取。您可能只是将null写入文件。

PrintWriter writer = new PrintWriter("grep__output", "UTF-8");
String s = null;
while ((s = stdInput.readLine()) != null) {
   writer.println(s);
} 
writer.close();