关于控制台IO的一个小例子

 刚才写了个关于文件IO的小例子,感觉有必要再写个关于控制台IO的,做事要追求完美嘛,呵呵。

import java.io.*;
public class TextRead{

public static void main(String[] args){
    BufferedReader bf = null;

    /*

        BufferedReader相当于一个大桶,其实就是内存,这里实现了大量大量的读写 ,而不是读一个字节或字符就直接写入 硬盘,加强了对硬盘的保护。

    */
    try{
        while(true){
// while(true){}循环保证程序不会结束
    
        bf = new BufferedReader(new InputStreamReader(System.in));

        /*

            System.in 为标准输入,System.out为标准输出    

            InputStreamReader用于将字节流到字符流的转化,在这里相当于个管道接在System.in与程序之间。
        */

     String line = bf.readLine();

        /*

            readLine()是BufferedReader类中用来读取一行数据的,它从当前位置开始读取,直至碰到第一个回车符。它的返回类型为String。

       */

     System.out.println(line);//在控制台输出.
    }  
   }catch(Exception e){
    e.printStackTrace();
   }finally{

    //一定要关闭流,用完后。最好放在

filally 里面。  
    try{   
     if(bf!=null){
      bf.close();
     }
    }catch(Exception e){
       e.printStackTrace();
    }
   }
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
StreamGobbler是Java中一个处理进程I/O流的类。下面是一个使用StreamGobbler的例子,它启动一个进程并从其标准输出流中读取数据: ``` import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; public class ProcessRunner { public static void main(String[] args) { try { Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec("ping www.baidu.com"); InputStream inputStream = process.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); StreamGobbler streamGobbler = new StreamGobbler(bufferedReader); Thread thread = new Thread(streamGobbler); thread.start(); int exitCode = process.waitFor(); System.out.println("Exited with error code " + exitCode); } catch (Exception e) { e.printStackTrace(); } } private static class StreamGobbler implements Runnable { private BufferedReader bufferedReader; public StreamGobbler(BufferedReader bufferedReader) { this.bufferedReader = bufferedReader; } public void run() { try { String line; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } } catch (Exception e) { e.printStackTrace(); } } } } ``` 这个例子启动一个ping命令并将其输出打印到控制台。StreamGobbler类实现了Runnable接口,它在单独的线程中读取进程的标准输出流并将其输出到控制台。在主线程中,我们使用Runtime.exec()方法启动进程,然后创建一个StreamGobbler实例来读取进程的输出流。最后,我们等待进程退出并打印其错误代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值