Просто отложите создание FileOutputStream
и PrintWriter
, пока вам это не понадобится:
PrintWriter pw = null;
Process proc = Runtime.getRuntime().exec(externalProgram);
InputStreamReader isr = new InputStreamReader(proc.getErrorStream());
BufferedReader br = new BufferedReader(isr);
String line;
while ( (line = br.readLine()) != null)
{
if (pw == null)
{
pw = new PrintWriter(new FileOutputStream(logFile));
}
pw.println(line);
pw.flush();
}
Лично я не большой поклонник PrintWriter
- тот факт, что он просто проглатывает всеисключения касаются меня.Я бы также использовал OutputStreamWriter
, чтобы вы могли явно указать кодировку.Во всяком случае, это помимо реального вопроса здесь.