java—如何仅在bufferedreader中有数据时创建文件?

xxe27gdn  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(377)

我从一个流中接收数据并将结果写入一个文件

File resultFile = new File("/home/user/result.log");

BufferedWriter bw = new BufferedWriter(new FileWriter(resultFile));
BufferedReader stdInput2 = new BufferedReader(new InputStreamReader(process.getInputStream()));
String s2 = null;
while ((s2 = stdInput2.readLine()) != null) {
    bw.write(s2+System.getProperty("line.separator"));
}
bw.close();

如果没有数据,则仍将创建一个空文件。
你能告诉我如何检查,如果没有数据,那就不要保存文件吗?我不需要空文件。
谢谢您。

sf6xfgos

sf6xfgos1#

首先尝试读取一行,然后仅在成功时创建文件。

File resultFile = new File("/home/user/result.log");

BufferedWriter bw = null;
BufferedReader stdInput2 = new BufferedReader(new InputStreamReader(process.getInputStream()));
String s2 = null;
while ((s2 = stdInput2.readLine()) != null) {
    if (bw==null) {
        bw=new BufferedWriter(new FileWriter(resultFile));
    }
    bw.write(s2+System.getProperty("line.separator"));
}
if (bw!=null) {
    bw.close();
}

相关问题