Java从零开始学三十八(JAVA IO- 重定向IO)
一、三个静态变量
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)的更多相关文章
- Java从零开始学三十五(JAVA IO- 字节流)
一.字节流 FileOutputStream是OutputStream 的直接子类 FileInputStream也是InputStream的直接子类 二.文本文件的读写 2.1.字节输入流 Test ...
- Java从零开始学三十三四(JAVA IO-流简述)
一.流概念(stream) File类并不能对文件内容进行读写. 读文件就是指:把文件的内中的数据读取到内存中来 写文件就是指:把内存中的数据写入到文件中去. 通过什么读写文件呢?文件流. 1.1.流 ...
- Java从零开始学三十六(JAVA IO- 字符流)
一.字符流 BufferedReader:BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中 BufferedWriter:把一批数据写入到缓冲区,当缓冲区区的 ...
- Java从零开始学三十九(对象序列化)
一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储. 序列化保存对象的“全景图”,构建对象的“ ...
- Java从零开始学三十二(正则表达式)
一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完 ...
- Java从零开始学三十(String和StringBuffer类)
一.StringBuffer连接字符操作 当一个字符串的内容需要被经常改变时就要使用StringBuffer 在StringBuffer中使用append()方法,完成字符串的连接操作 二.Str ...
- Java从零开始学二十八(Math类和Random类)
一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { ...
- Java学习笔记二十八:Java中的接口
Java中的接口 一:Java的接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承 ...
- Java从零开始学四十五(Socket编程基础)
一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...
随机推荐
- Codeforces Round #280 (Div. 2) D. Vanya and Computer Game 预处理
D. Vanya and Computer Game time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- Linux性能监控分析命令(二)—sar命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...
- asp.net 判断日期是否为空
if (Birthday == DateTime.MinValue) { //u can do something here } 首先确保Birthday是不可为null的日期类型.如果可为null就 ...
- C#线程安全的那些事
还是上一次,面试的时候提到了C#线程安全的问题,当时回答的记不太清了,大概就是多线程同是调用某一个函数时可能会照成数据发生混乱,运行到最后发现产生的结果或数据并不是自己想要的,或是跨线程调用属性或方法 ...
- Andriod 环境配置以及第一个Android Application Project
Android 入门学习心得-----------------环境配置以及一些文件的理解 Android 开发似乎早已经开始疯狂起来了,今天,也开始学习了Android的开发.首先,必须要面 ...
- CHANGE USER WHEN I CONNECT TO TEAM FOUNDATION SERVER
Question: I USE TEAM EXPLORER TO CONECT TO TEAM FOUNDATION SERVER 2010, BUT I DO NOT LOGIN OUT, AND ...
- 汉字转拼音的Java类库——JPinyin
原文:http://blog.csdn.net/stuxuhai/article/details/8932715 [JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5 ...
- 【elasticsearceh】elasticsearch.yml配置文件详解
主要内容如下: cluster.name: elasticsearch 配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个 ...
- 深入分析JavaWeb Item7 -- HttpServletResponse详解
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...
- Maximum Likelihood Method最大似然法
最大似然法,英文名称是Maximum Likelihood Method,在统计中应用很广.这个方法的思想最早由高斯提出来,后来由菲舍加以推广并命名. 最大似然法是要解决这样一个问题:给定一组数据和一 ...