posts - 88, comments - 3, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          java修改stdout的歷史輸出

          Posted on 2016-04-21 17:06 Milo的海域 閱讀(419) 評(píng)論(0)  編輯  收藏 所屬分類: Java
          java里如何修改console的歷史輸出信息呢?如果是當(dāng)前行的修改可以簡(jiǎn)單想到"\r"的方案,但是如果要修改上一行呢? google了下原來還是有方法的,需要用到ansi的control sequences
          ANSI code

          用java寫了個(gè)簡(jiǎn)單的例子,例子就是把曾經(jīng)的output修改為其他字符串并恢復(fù)之后的打印,代碼里加了sleep,主要方便理解各種控制序列的含義
                  //print some test messages
                  System.out.println("1");
                  Thread.sleep(
          1000);
                  System.out.println(
          "22");
                  Thread.sleep(
          1000);
                  System.out.println(
          "333");
                  Thread.sleep(
          1000);
                  System.out.println(
          "4444");
                  Thread.sleep(
          1000);

                  
          /**
                   * modify "333" to "-"
                   
          */
                  
          // Move up two lines
                  int count = 2;
                  System.out.print(String.format(
          "\033[%dA", count));
                  Thread.sleep(
          1000);
                  
          // Erase current line content
                  System.out.print("\033[2K");
                  Thread.sleep(
          1000);
                  
          // update with new content
                  System.out.print("-");
                  Thread.sleep(
          1000);
                  
          // Move down two lines
                  System.out.print(String.format("\033[%dB", count));
                  Thread.sleep(
          1000);
                  
          // Move cursor to left beginning
                  System.out.print(String.format("\033[D", count));
                  
          // continue print others
                  Thread.sleep(1000);
                  System.out.println(
          "55555");
                  Thread.sleep(
          1000);
          主站蜘蛛池模板: 康乐县| 基隆市| 龙口市| 府谷县| 洪湖市| 南安市| 雅安市| 灵台县| 宝清县| 淅川县| 茂名市| 三门峡市| 宜君县| 白河县| 德阳市| 叙永县| 汕尾市| 新丰县| 石台县| 城步| 阿克苏市| 贡觉县| 大田县| 石河子市| 临朐县| 和林格尔县| 昭平县| 株洲市| 湾仔区| 彭州市| 泰安市| 铜川市| 佳木斯市| 新津县| 芒康县| 喀喇| 西青区| 明水县| 松原市| 北宁市| 河曲县|