Java重定向标准输入输出流I/O

标签: java 重定向 标准 | 发表时间:2013-11-15 18:55 | 作者:wokao159
出处:http://www.iteye.com

一、问题的引入:

        一般情况下,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("=============读取输入流完毕============");
 }

}

 

 

本文摘自:http://blog.csdn.net/ghp517826/article/details/8923112

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [java 重定向 标准] 推荐:

Java重定向标准输入输出流I/O

- - Java - 编程语言 - ITeye博客
        一般情况下,System.in代表的是键盘、System.out是代表的控制台(显示器). 当程序通过System.in来获取输入的时候,默认情况下,是从键盘读取输入;当程序试图通过System.out执行输出时,程序总是输出到显示器. 如果我们想对这样的情况做一个改变,例如获取输入时,不是来自键盘,而是来自文件或其他的位置;输出的时候,不是输出到显示器上显示,而是输出到文件或其他位置,怎么实现.

linux重定向:将标准输出stdout和标准错误stderr重定向到一个文件

- - CSDN博客系统运维推荐文章
使用&>或&>>可以将stdout和stderr一块输出到指定文件. 先重定向文件描述符A,再用B>&A或B>>&A将文件描述符B重定向到同一文件. 上面例子stderr(2)被重定向到stdout(1)当前的位置(即outerr.txt). 作者:BlueCloudMatrix 发表于2014-4-4 20:14:12 原文链接.

遵循Java EE标准体系的开源GIS服务平台架构

- - CSDN博客Web前端推荐文章
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ GoF23种设计模式 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229.

遵循Java EE标准体系的开源GIS服务平台之二:平台部署

- - CSDN博客架构设计推荐文章
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ GoF23种设计模式  ☞  转载请注明  ☞  http://blog.csdn.net/leverage_1229.

遵循Java EE标准体系的开源GIS服务平台之三:数据发布与访问

- - CSDN博客Web前端推荐文章
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229. 传送门 ☞ GoF23种设计模式.         在GIS服务平台构建完毕之后,我们就要着手在此平台上提供服务以供客户端请求访问.

shell 重定向的一处妙用

- Kindy - A Geek&#39;s Page
偶然在 dracut 的代码中发现一个使用重定向很巧妙的地方. 见 modules.d/90kernel-modules/module-setup.sh 文件.                  *.ko)    [[ $(<        $_f) =~ $_blockfuncs ]] && echo "$_f" ;;.

linux各种数据流重定向

- - CSDN博客系统运维推荐文章
> :以覆盖的方法将『所有的数据』输出到指定的文件或装置上. 1> :以覆盖的方法将『正确的数据』输出到指定的文件或装置上. 1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上. 2> :以覆盖的方法将『错误的数据』输出到指定的文件或装置上. 2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上.

spring mvc 的跳转 和 重定向

- - 企业架构 - ITeye博客
(1)我在后台一个controller跳转到另一个controller,为什么有这种需求呢,是这样的. 我有一个列表页面,然后我会进行新增操作,新增在后台完成之后我要跳转到列表页面,不需要传递参数,列表页面默认查询所有的.         方式一:使用ModelAndView.         这样可以重定向到toList这个方法.

Java中的锁(Locks in Java)

- - 并发编程网 - ifeve.com
原文链接 作者:Jakob Jenkov 译者:申章 校对:丁一. 锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂. 因为锁(以及其它更高级的线程同步机制)是由synchronized同步块的方式实现的,所以我们还不能完全摆脱synchronized关键字( 译者注:这说的是Java 5之前的情况).

malingcat: 标准照

- Spectrophobia. - 读写人
[读写人(duxieren.com)文摘] [文章来源:malingcat]. 这年头的城里人,谁没有个数码相机呢. 打工仔的手机都有简单的照相功能了. 尽管如此,照相馆依然有生意,宝宝照、证件照、毕业照、工作照、婚纱照、直到最后的骨灰盒专用二寸遗像,照相馆默默陪伴着人的一生. 我们需要专业的照相馆,无它,只因我们的人生需要美化.