标准I/O重导向

转载 2006年06月05日 17:56:00
Java不但提供了标准的I/O:System.in,System.out和System.err,也提供了对标准输入、标准输出、标准错误输出等I/O进行重导向。
在Java的System class中提供了以下几个静态函数实现了标准I/O的重导向:
public static void setIn(InputStream in);
将标准输入重导向为参数InputStream指定的输入流。
public static void setOut(PrintStream out);
将标准输出重导向为参数PrintStream指定的输出流。
public static void setErr(PrintStream err);
将标准错误输出重导向为参数PrintStream指定的输出流。
标准输出和标准错误输出默认输出到屏幕,为了以示和标准错误输出的区别,现将标准输出指向另一个文件,同时将标准输入也重定向到文件。程序如下:
import java.io.*;
 
public class ErrRedirecting
{
  public ErrRedirecting()
  {
  }
 
  public static void main(String[] args) throws IOException
  {
    //标准输出重导向的文件
    String outFileName = "out.txt";
    //标准输入重导向的文件
    String inFileName = "in.txt";
    //生成标准输入重导向的InputStream
    BufferedInputStream in =
        new BufferedInputStream(
        new FileInputStream(inFileName));
    //生成标准输出重导向的PrintStream
    PrintStream out =
        new PrintStream(
        new BufferedOutputStream(
        new FileOutputStream(outFileName)));
    //标准输入输出的重导向
    System.setIn(in);
    System.setErr(out);
    //从重导向的标准输入中读取数据到BufferedReader中
    BufferedReader reader =
        new BufferedReader(
        new InputStreamReader(System.in));
    String line;
    //每次从BufferedReader读取一行数据并输出到重导向的输出文件
    while ( (line = reader.readLine()) != null)
      System.out.println(line);
      //关闭
    out.close();
  }
}

C++流之标准I/O流

1、什么是标准I/O? 2、标准I/O的类的继承关系是什么? 3、ios类中几个常用的枚举类是什么? 4、ios类中的成员函数有哪些? 5、什么是格式控制符?...
  • dingyanxxx
  • dingyanxxx
  • 2015年08月09日 20:51
  • 803

文件I/O和标准I/O的区别

一、先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所...
  • zqixiao_09
  • zqixiao_09
  • 2016年01月01日 10:12
  • 2345

C语言标准I/O函数及其特点总结

C语言的标准I/O库通过系统调用同内核打交道,内核通过驱动和硬件打交道。由于CPU要处理很多任务,所以和低速的I/O的交互一般要经过中间的缓存。    标准I/O库有几个常用函数,虽然很常见,但是其...
  • a1510685338
  • a1510685338
  • 2015年03月16日 20:24
  • 1281

底层文件I/O和ANSI标准I/O的区别

一、先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是...
  • owen7500
  • owen7500
  • 2016年11月21日 20:45
  • 764

五种I/O,select

一个输入操作通常包括两个不同的阶段: 1,等待数据准备好: 2,从内核中向进程复制数据: 对于一个套接字上的输入操作: 1,等待数据从网络中到达。当所有的等待分组到达时,它被复制到内核中的某个缓冲区。...
  • msdnwolaile
  • msdnwolaile
  • 2016年07月15日 09:49
  • 901

Linux之数据流重导向

操作的结果有两种,一种是正确的结果,另一种是错误的结果。Linux把前者称为标准输出,其文件描述符是1;后者称为标准错误输出,对应的文件描述符是2。这两类结果信息是分开的。默认情况下,这两类信息都会输...
  • u012668018
  • u012668018
  • 2014年09月13日 12:00
  • 982

浅谈标准I/O缓冲区

转自:http://blog.csdn.net/tennysonsky/article/details/43490985 标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的...
  • lianghe_work
  • lianghe_work
  • 2015年06月23日 09:35
  • 1154

apue学习第九天——标准I/O库(第五章)

这是第五章标准I/O库的内容,花了几个小时浏览了一遍。感觉这些东西在第一遍看的时候没必要太抠细节,用到的时候再查,所以下面只是简单记录,好啦,开始。 首先,给stream一个系统的定义:In...
  • BlitzSkies
  • BlitzSkies
  • 2015年01月05日 20:28
  • 723

Linux - 标准I/O库与高级I/O库

输入字符头文件 #include 函数原型 int fgetc(FILE *fp); 从文件流中读取下一个字节,并作为字符返回 到达文件尾或出现错误时,返回EOF int getc(FILE *fp...
  • wangzi11322
  • wangzi11322
  • 2015年05月13日 14:28
  • 969

【linux系统编程】C标准I/O函数和系统无缓冲函数(Unbuffered I/O函数)关系

先接收一下,本文章主要内容: 1.C标准I/O函数和系统无缓冲函数(Unbuffered I/O函数)关系; 2.I\O函数:buffer && unbuffer; 开始前,我们要清楚linux...
  • jyb_haha
  • jyb_haha
  • 2013年07月24日 18:32
  • 1167
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:标准I/O重导向
举报原因:
原因补充:

(最多只允许输入30个字)