2016-03-02 11 views
2

Мой код требует, чтобы программа печатала массив чисел в текстовом файле.Как чередовать печать в консоли и печать в текстовом файле

Таким образом, в эти периоды, я хочу изменить свой выходной поток:

System.setOut(new PrintStream(new FileOutputStream("data.txt"))); 

Итак, как бы я вернуться к печати в консоли?

Любая помощь будет оценена по достоинству. Спасибо.

+0

Почему использовать ' System.out.print' вместо передачи «PrintStream» в код, выполняющий печать и печать ng вместо «PrintStream»? Если это невозможно: сохраните 'System.out' в переменной, измените' System.out', напечатайте что-нибудь, установите 'System.out' на старое значение. – fabian

ответ

0

Этот пример может помочь вам:

https://github.com/dreedyman/Rio/blob/master/rio-start/src/main/java/org/rioproject/start/LogManagementHelper.java#L45

static void redirectIfNecessary() { 
    /* If we have been exec'd by Rio (such as a service that has been declared to be forked, 
    * stdout and stderr have already been redirected */ 
    if(System.getenv("RIO_EXEC")==null && System.console()==null) { 
     redirectToLogger(); 
    } 
} 

static void redirectToLogger(){ 
    System.setOut(new PrintStream(System.out){ 
     public void print(String s){ 
      stdOutLogger.info(s); 
     } 
    }); 
    System.setErr(new PrintStream(System.err){ 
     public void print(String s){ 
      stdErrLogger.error(s); 
     } 
    }); 
} 
0

Следующий пример может быть полезным ....

addWindowListener(new WindowAdapter() { 
     public void windowActivated(WindowEvent e) { 
//   EditorConsole.systemOut.println("editor window activated"); 
      base.handleActivated(Editor.this); 
//   mode.handleActivated(Editor.this); 
      fileMenu.insert(base.getSketchbookMenu(), 2); 
      fileMenu.insert(base.getRecentMenu(), 3); 
//   fileMenu.insert(mode.getExamplesMenu(), 3); 
      sketchMenu.insert(mode.getImportMenu(), 4); 
      mode.insertToolbarRecentMenu(); 
     } 

     // added for 1.0.5 
     // http://dev.processing.org/bugs/show_bug.cgi?id=1260 
     public void windowDeactivated(WindowEvent e) { 
//   EditorConsole.systemErr.println("editor window deactivated"); 
//   mode.handleDeactivated(Editor.this); 
      fileMenu.remove(base.getSketchbookMenu()); 
      fileMenu.remove(base.getRecentMenu()); 
//   fileMenu.remove(mode.getExamplesMenu()); 
      sketchMenu.remove(mode.getImportMenu()); 
      mode.removeToolbarRecentMenu(); 
     } 
     }); 

Полный код: http://code.openhub.net/file?fid=LfGSIGX0O67nvFyO4lEKQDA5zxE&cid=80HR_JtEBgg&s=How%20to%20alternate%20between%20printing%20in%20console%20and%20printing%20in%20a%20text%20file&pp=0&fl=Java&ff=1&filterChecked=true&fp=1237&mp,=1&ml=0&me=1&md=1&projSelected=true#L0

 Смежные вопросы

  • Нет связанных вопросов^_^