Java标准I/O

来源:互联网 发布:filter 过滤器 python 编辑:程序博客网 时间:2024/05/09 08:17
标准I/O

1、标准I/O:参照Unix中“程序所使用的单一信息流”的概念,程序的输入都可以来自于标准输入,程序输出都可以发送到标准输出,所有的错误信息都可以发送到标准错误;
标准I/O的意义在于:可以把程序串联起来,使一个程序的标准输出可以成为另一个程序的标准输入;
2、Java提供了System.in、System.out、Sytem.err支持标准I/O模型;

3、System.out、System.err被包装为PrintStream
      System.in是一个没有被包装过的InputStream
这意味着,可以直接使用前两者,而后者要包装后才可以使用;
①包装System.in
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));//Scanner stdin = new Scanner(System.in);     //Scanner有便捷的包装构造方法;String s;while((s = stdin.readine())!= null && s.length != 0)     System.out.println(s);

②将System.out装换为PrintWriter
PrintWriter out = new PrintWriter(System.out,true);  //true:println、print、format方法将自动刷新缓冲流;out.println("Hello world!");



4、重定向标准I/O
System.setIn(InputStream):
System.setOut(PrintStream);
System.setErr(PrintStream);
示例代码:
BufferedInputStream in = new BufferedInputStream(new FileInputStream("demo.java"));PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream("tesOUt.out")));PrintStream console = System.out;          //对控制台标准输出进行标注System.setIn(in);          //后面可以使用Scanenr等对System.in进行读取操作(适用于读取大量测试数据)System.setOUt(out);BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String s;while((s = br.readLine())!= null)     System.out.printlns(s);     out.close();in.close();System.setOut(console);  //恢复标准输出到控制台;//在以上代码中,System.in、System.out实际充当了一个数据流的中转站;




0 0
原创粉丝点击