一、三个静态变量

java.lang.System提供了三个静态变量

  • System.in(默认键盘)
  • System.out(默认显示器)
  • System.err

二、重写向方法

System提供了三个重定向方法

方法 说明
static void setErr(PrintStream errr) 重定向标准错误输出流
static void setIn(InputStream in ) 重定向标准输入流
static void setOut(PrintStream out) 重定向歀输出流

三、例子

3.1、重定向输入流

package com.pb.io.reio;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException; /*
* 重定向输入
* 1.有一个已经初始化的InputStream输入流
* 2.调用System.setIn()方法,将标淮输入流重定向到目的输入流
* 3.读取System.in中的内容
*/
public class ReIn { public static void main(String[] args) throws UnsupportedEncodingException { try {
//1.声明一个输入流
FileInputStream fis=new FileInputStream("d:/test/s1.txt");
//2.重定向
System.setIn(fis);
//3.读取System.in标准输入流中的内容
BufferedReader br=new BufferedReader(new InputStreamReader(System.in,"gb2312")); //设置字符编码
//4.输出System.in中的内容
String line=null;
while((line=br.readLine())!=null){
System.out.println(line);
}
//5.关闭流
br.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } }

3.2、重定向输出流

package com.pb.io.reio;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream; /*
* 重定向标淮输出流
* 1.初始化PrintStream对象
* 2.调用System.setOut()方法,将标淮输出流重定向至PrintStream对象
* 3.操作System.out流,
*/
public class ReOut { public static void main(String[] args) { try {
//1.声明一个输出流PrintStream对象
PrintStream ps=new PrintStream(new FileOutputStream("d:/test/ps.txt",true)); //追加内容
//2.重定向标淮输出流
System.setOut(ps);
//3.使用PrintStream对象向流中写信息
System.out.println("测试重定向成功了没有!");
System.out.println(new ReOut());
ps.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} } }

Java从零开始学三十八(JAVA IO- 重定向IO)的更多相关文章

  1. Java从零开始学三十五(JAVA IO- 字节流)

    一.字节流 FileOutputStream是OutputStream 的直接子类 FileInputStream也是InputStream的直接子类 二.文本文件的读写 2.1.字节输入流 Test ...

  2. Java从零开始学三十三四(JAVA IO-流简述)

    一.流概念(stream) File类并不能对文件内容进行读写. 读文件就是指:把文件的内中的数据读取到内存中来 写文件就是指:把内存中的数据写入到文件中去. 通过什么读写文件呢?文件流. 1.1.流 ...

  3. Java从零开始学三十六(JAVA IO- 字符流)

    一.字符流 BufferedReader:BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中 BufferedWriter:把一批数据写入到缓冲区,当缓冲区区的 ...

  4. Java从零开始学三十九(对象序列化)

    一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储.   序列化保存对象的“全景图”,构建对象的“ ...

  5. Java从零开始学三十二(正则表达式)

    一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完 ...

  6. Java从零开始学三十(String和StringBuffer类)

    一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作   二.Str ...

  7. Java从零开始学二十八(Math类和Random类)

    一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { ...

  8. Java学习笔记二十八:Java中的接口

    Java中的接口 一:Java的接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承 ...

  9. Java从零开始学四十五(Socket编程基础)

    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

随机推荐

  1. linux下mysql自动备份脚本

    脚本放在 /home/user/mysql_backup.sh crontab # crontab -l # m h  dom mon dow   command 28 16 * * * /home/ ...

  2. MVC把表格导出到Excel

    有关Model: namespace MvcApplication1.Models { public class Coach { public int Id { get; set; } public ...

  3. mormot当作内存数据库(缓存)使用

    mormot当作内存数据库(缓存)使用 mormot的TSQLRestStorageInMemory可以作为内存数据库来使用. 上图是在笔者4代I5笔记本上做的测试,增加10万记录,耗时:562毫秒. ...

  4. UITableView的headerView展开缩放动画

    UITableView的headerView展开缩放动画 效果 源码 https://github.com/YouXianMing/Animations // // HeaderViewTapAnim ...

  5. Spring3数据源的6种配置方法

    在Spring3中,配置DataSource的方法有五种. 第一种:beans.xml <bean id="dataSource" class="org.apach ...

  6. Leader之重

    1:合理安排每个CASE并检查每个人每天的工作进度和质量: 这会让一个庞大的工作,或者看上不可能完成的任务,变成可完成的.   2:警惕对立情绪,并寻找交接者: 永远无法控制所有成员对你或者对团队对公 ...

  7. MySQL必会的28条经典查询

    MySQL必会的28条经典查询   原创作品.转载请注明出处https://blog.csdn.net/kk123k 表结构及测试数据请看我上一篇文章:学生选修成绩表测试数据 Student(Sno, ...

  8. WebService—CXF整合Spring实现接口发布和调用过程

    一.CXF整合Spring实现接口发布 发布过程如下: 1.引入jar包(基于maven管理) <!-- cxf --> <dependency> <groupId> ...

  9. Windows 7目录

    1. 用wubi安装的Ubuntu在重装Windows 7系统后,如何恢复(转) 2. Windows 7系统垃圾清理自写程序

  10. 在Java Web程序中使用Hibernate

    在Java Web程序中使用Hibernate与普通Java程序一样.本文中将使用Servlet和JSP结合Hibernate实现数据库表的增删改查操作. Web程序中,hibernate.cfg.x ...