当前位置 博文首页 > 白徽的博客:二狗大笑一声: java I/O 标准输出已解

    白徽的博客:二狗大笑一声: java I/O 标准输出已解

    作者:[db:作者] 时间:2021-07-30 20:57

    我与二狗的学习日常

    学了一段字节流操作,突然二狗一脸纠结的过来找我
    咋了,二狗?便秘了?

    没有,老大。就是突然想到如果我想要把文件里面的东西直接输出到屏幕上应该怎么搞?具体有点想不明白。

    哦,那简单。你一般怎么输出就怎么输出不就行了吗?

    能具体一点不?

    你先写一下,你一般怎么输出东西?

    System.out.print();
    

    二狗写了代码,看着我

    嗯,就这样,把你从文件得到东西给他这样输出一下试试。

    二狗照做之后屏幕出现了一段数字

    979899196227206210203251131049505121017019122219217813106566671310
    

    二狗用他无助的小眼神看着我。

    嗯,但是吧。这样输出的结果虽说是一堆数字。但是你仔细看就会明白。这些其实是那些文件的字节形式。但是你却把他们没处理就输出了!

    二狗眼神一亮。拍了大腿。对啊!我就说嘛!怎么这么眼熟?

    嗯,至于怎么转化呢?给你这个方法

    System.out.write();
    

    这样字节形式的文件就可以用字符形式输出了!

    二狗看我的眼神就好像看着神一样。充满了敬畏!

    我对此毫不在意。潇洒回首而去。

    直接放代码:
    边打边学
    可能引起你的恐惧的代码那里已经标记好。最下面已经给你解释好了那段标记的代码。恐惧了就看一下解释。激励一下自己。

    import java.io.*; 
    public class IOStreamTest { 
         public static void main(String[] args) throws IOException { 
              	   InputStream input=null;
                   PrintStream  output=null; 
                  input =  new FileInputStream("src.txt");  
                  //恐惧点1  
                  output =  System.out;
                  int b=-1;
                    while(true){
              	             b=input.read();  
              	             output.print("("+b+")");
            	             if (b==-1) break; 
                  output.write(b);
                         //   output.flush(); 
                     } 
                     input.close();
                     output.close(); 
           }  
    } 
    
    

    恐惧1

    这个你只需在每一个使用它的时候直接把 System.out 代替 output 即可。
    即:

    output.print("("+b+")");
    

    变成

    System.out.print("("+b+")");
    

    还有

    output.write(b);
    

    变成

    System.out.write(b);
    

    其结果完全没问题。

    cs