标准I/O重定向

如果我们在控制台创建大量输出(如在调试程序时),而这些输出滚动的太快以致无法阅读时,重定向输出就显得很有意义。例如重定向输出到文件,我们便可以很方便的查阅文件。
下面是一个简单的例子,来自《Think in java》,介绍了一些方法的使用,这里添加了一些代码及简要的注释加以说明。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;


public class Redirecting {

public static void main(String[] args) throws IOException {
/*
*输入、输出、错误的重定向,定向到文件
*/
PrintStream console = System.out;
BufferedInputStream in = new BufferedInputStream(
new FileInputStream("E:/worksp/reflect/src/Redirecting.java"));

PrintStream out = new PrintStream(
new BufferedOutputStream(
new FileOutputStream("E:/worksp/reflect/src/test.txt")));
// PrintStream out = new PrintStream(
// new BufferedOutputStream(
// new FileOutputStream("E:/fuel.txt",true)),true);
// 第一个true表示追加,第二个表示缓存自动刷新

System.setIn(in); //输入定向到文件Redirecting.java
System.setOut(out); //输出定向到文件test.txt
System.setErr(out); //错误定向到文件test.txt

BufferedReader br = new BufferedReader(
new InputStreamReader(System.in)); //InputStreamReader 字节流转换到字符流类
String s;
while((s = br.readLine()) != null){
System.out.println(s);
}
out.close(); //必须调用的方法
System.setOut(console); //重新定向到控制台
System.out.println("console!");
}
}

注:I/O重定向操纵的是字节流,不是字符流。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值