외부 프로그램의 실행에서 오류 스트림을 기록하는 로깅 기능입니다. 모든 것이 잘 작동합니다. 그러나 오류 스트림에 데이터가없는 경우 로그 파일을 생성하고 싶지 않습니다. 현재 크기가 0 인 파일을 만들고 있습니다. 도와주세요.Inputstream에 데이터가 없을 때 FileOutputStream에서 파일 생성 건너 뛰기
FileOutputStream fos = new FileOutputStream(logFile);
PrintWriter pw = new PrintWriter(fos);
Process proc = Runtime.getRuntime().exec(externalProgram);
InputStreamReader isr = new InputStreamReader(proc.getErrorStream());
BufferedReader br = new BufferedReader(isr);
String line=null;
while ((line = br.readLine()) != null)
{
if (pw != null){
pw.println(line);
pw.flush();
}
}
감사합니다. 당신이 그것을 필요로 할 때까지
감사합니다 @ 존 소총을 변경하는 것입니다. 나는 내 실수를 발견했다. FileWriter는 실제로 함수의 매개 변수이기 때문에 PrintWriter 만 지연 시키려고했습니다. 내 매개 변수 형식을 File로 변경 한 다음 루프 내에서 FileOutputStream을 만들어야하는 것 같습니다. – Sujee