如何在控制台中打印和在文本文件中打印之间进行切换

时间:2016-03-02 19:55:01

标签: java system outputstream

我的代码要求程序在文本文件中打印数字数组。

因此,在这些时期,我想更改输出流:

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

那么,我将如何在控制台中返回打印?

任何帮助将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分: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);
        }
    });
}

答案 1 :(得分: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