如何仅在 BufferedReader 中有数据时才创建文件?
How to create file only if there is data in BufferedReader?
我正在从流中接收数据并将结果写入文件
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();
如果没有数据,那么仍然会创建一个空文件。
请问如何检查,如果没有数据,则不保存文件?
我不需要空文件。
谢谢。
先尝试读取一行,成功后再创建文件。
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();
}
我正在从流中接收数据并将结果写入文件
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();
如果没有数据,那么仍然会创建一个空文件。
请问如何检查,如果没有数据,则不保存文件? 我不需要空文件。
谢谢。
先尝试读取一行,成功后再创建文件。
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();
}