读书人

Java的基准I/O剖析

发布时间: 2014-01-09 23:07:34 作者: rapoo

Java的标准I/O剖析

? ? ? System.out是一个PrintStream,而PrintStream是一个OutputStream。PrintWriter有一个可以接受OutputStream做为参数的构造器,所以可以将System.out转换成PrintWriter:

               PrintWriter writer=new PrintWriter(System.out,true);writer.println("nihao"+"    :wo 是否");

?要使用有两个参数的PrintWriter的构造器,并将第二个参数设置为true,以便开启自动清空功能;否则,你可能得不到结果。

?

重定向标准I/O:将from.txt中的内容转存到to.txt文件中。

?

? 注意:setIn(InputStream)

? ? ? ? ? ? setOut(PrintStream)

? ? ? ? ? ? setErr(PrintStream)

? ? ? 可以对标准输入,标准输出,标准错误进行I/O重定向。

package com.wjy.multithread;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;public class ReDirect {public static void main(String args[]) {PrintStream console=System.out;try {PrintStream out=new PrintStream(new BufferedOutputStream(new FileOutputStream(new File("./file/to.txt"))));BufferedInputStream in=new BufferedInputStream(new FileInputStream(new File("./file/from.txt")));System.setIn(in);System.setOut(out);String s;BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));while((s=reader.readLine())!=null){System.out.println(s);}out.close();System.setOut(console);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

?

读书人网 >编程

热点推荐