Java重定向标准输入输出流I/O(理解)
2013-05-13 23:08
423 查看
一、问题的引入:
一般情况下,System.in代表的是键盘、System.out是代表的控制台(显示器)。当程序通过System.in来获取输入的时候,默认情况下,是从键盘读取输入;当程序试图通过System.out执行输出时,程序总是输出到显示器。如果我们想对这样的情况做一个改变,例如获取输入时,不是来自键盘,而是来自文件或其他的位置;输出的时候,不是输出到显示器上显示,而是输出到文件或其他位置,怎么实现?于是,java重定标准输入输出应运而生。
二、java中提供了三个重定向方法:
static void setErr(PrintStream err)、Static void setIn(InputStream in)、Static void setOut(PrintStream out)
三、示例
1、重定向标准输出
package com.pb.io.reio;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
/**
* 重定向标准输出流
* 1.初始化PrintStream对象
* 2.调用System.setOut()方法,将标准输出流重定向到PrintStraem对象
* 3.操作System.out流
*/
public class ReOut {
public static void main(String[] args) throws FileNotFoundException {
//初始化一个PrintStream对象
PrintStream ps = new PrintStream(new FileOutputStream("c:/myDoc/hello.txt"));
//重定向标准输出流,重定向到上面指定的文件
System.setOut(ps);
//使用PrintStream对象向流中写信息
System.out.print("测试一下,看重定向是否成功");
System.out.println(new ReOut());
//关闭流
ps.close();
}
}
2、重定向标准输入流
package com.pb.io.reio;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 重定向标准输入流
* 1.有一个已经初始化的输入流InputStream
* 2.调用System.setIn()方法,将标准输入流重定向到目的输入流
* 3.对System.in进行读取操作
* @author ghp
*
*/
public class ReIn {
public static void main(String[] args) throws IOException {
//实例化FileinputStream对象
FileInputStream fis = new FileInputStream("c:/myDoc/hello.txt");
//重定向标准输入流
System.setIn(fis);
//读取System.in标准输入流中的内容
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//输出System.in中的内容
String line = null;
System.out.println("==============开始读取标准输入流=============");
while((line = br.readLine()) !=null){
System.out.println(line);
}
//关闭流
br.close();
fis.close();
System.out.println("=============读取输入流完毕============");
}
}
一般情况下,System.in代表的是键盘、System.out是代表的控制台(显示器)。当程序通过System.in来获取输入的时候,默认情况下,是从键盘读取输入;当程序试图通过System.out执行输出时,程序总是输出到显示器。如果我们想对这样的情况做一个改变,例如获取输入时,不是来自键盘,而是来自文件或其他的位置;输出的时候,不是输出到显示器上显示,而是输出到文件或其他位置,怎么实现?于是,java重定标准输入输出应运而生。
二、java中提供了三个重定向方法:
static void setErr(PrintStream err)、Static void setIn(InputStream in)、Static void setOut(PrintStream out)
三、示例
1、重定向标准输出
package com.pb.io.reio;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
/**
* 重定向标准输出流
* 1.初始化PrintStream对象
* 2.调用System.setOut()方法,将标准输出流重定向到PrintStraem对象
* 3.操作System.out流
*/
public class ReOut {
public static void main(String[] args) throws FileNotFoundException {
//初始化一个PrintStream对象
PrintStream ps = new PrintStream(new FileOutputStream("c:/myDoc/hello.txt"));
//重定向标准输出流,重定向到上面指定的文件
System.setOut(ps);
//使用PrintStream对象向流中写信息
System.out.print("测试一下,看重定向是否成功");
System.out.println(new ReOut());
//关闭流
ps.close();
}
}
2、重定向标准输入流
package com.pb.io.reio;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 重定向标准输入流
* 1.有一个已经初始化的输入流InputStream
* 2.调用System.setIn()方法,将标准输入流重定向到目的输入流
* 3.对System.in进行读取操作
* @author ghp
*
*/
public class ReIn {
public static void main(String[] args) throws IOException {
//实例化FileinputStream对象
FileInputStream fis = new FileInputStream("c:/myDoc/hello.txt");
//重定向标准输入流
System.setIn(fis);
//读取System.in标准输入流中的内容
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//输出System.in中的内容
String line = null;
System.out.println("==============开始读取标准输入流=============");
while((line = br.readLine()) !=null){
System.out.println(line);
}
//关闭流
br.close();
fis.close();
System.out.println("=============读取输入流完毕============");
}
}
相关文章推荐
- Java中标准输入输出流的重定向
- Java ,如何用标准的输入输出流重定向到一个文件
- Java 重定向标准输入输出流
- 初学Java,IO之重定向标准输入\输出(四十五)
- 输入/输出流 - 深入理解 Java中的 流 (Stream)
- Java重定向标准输入/输出
- Java重定向标准输入/输出
- 92、java的IO操作-标准输入输出流
- Java IO 输入输出流的理解 1
- java中IO流中的标准输入输出流
- java基础学习中理解的问题-输入输出流,a++,++a
- Java重定向标准输入/输出
- Java 输入输出流的一些理解
- Java(标准输入/输出流)
- 重踏学习Java路上_Day22(数据操作流,内存操作流,打印流,标准输入输出流,随机访问流,合并流,序列化流,Properties,NIO)
- java 输入输出流的理解 FileOutputStream和FileInputStream的主导者
- freopen()——重定向标准输入输出流
- Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties
- Java基础知识强化之IO流笔记61:标准输入输出流的本质
- Java_基础—标准输入输出流概述和输出语句