您的位置:首页 > 其它

标准IO和重定向IO

2019-03-25 17:12 78 查看
版权声明:Copyright © 2019-2099 沧海桑田 https://blog.csdn.net/weixin_38270240/article/details/88799845

【标准输入/输出流】
java提供两个标准输入/输出流,System.in和System.out,主要用于从键盘接收数据以及向屏幕输出数据。
System.in常用方法2个:
int read(),从键盘接收1个字节的数据,返回该字符的ASCII码
int read(byte[]buf),从键盘接收多个字节的数据,保存至字节数组buf,返回接收的字节数据的个数
System.out常用方法2个:
print(),向屏幕输出,不换行,参数为java任意数据类型
println(),向屏幕输出,换行,参数为java任意数据类型
【重定向输入/输出流】
使用标准I/O对文件进行读写很方便,但是,标准I接收键盘数据,标准O输出到控制台,需要告诉I/O新的读入来源地和写出目的地,即,对标准I/O重定向

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
/**
* 重定向标准I/O到文件.
* System类有3个静态方法用于重定向标准I/O.
* setErr(PrintStream err):重定向标准错误输出流
* setIn(InputStream in):重定向标准输入流
* setOut(PrintStream out):重定向标准输出流
*/
public class ResetIODirection {

public static void main(String[] args) throws IOException {
//1.重定向输出目的地
//1.1创建PrintStream输出流对象指向目标文件
PrintStream ps=new PrintStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\

\ResetIODirection.txt"));
//1.2将标准输出流定向到目标文件,使用重定向标准输出流方法setOut(PrintStream out)
System.setOut(ps);
//1.3向目标文件print内容
System.out.println("标准输出流System.out重定向到文件ResetIODirection.txt");
ps.flush();
ps.close();
//1.4解除输出重定向(使用标准输出)
System.setOut(System.out);

//2.重定向输入来源地
//2.1创建InputStream输入流对象指向目标文件
FileInputStream fis=new FileInputStream("C:\\Users\\Administrator\\Desktop\

\ResetIODirection.txt");
//2.2将标准输出流定向到目标文件,使用重定向标准输出流方法setIn(PrintStream in)
System.setIn(fis);
//2.3从目标文件读入内容
byte[] b=new byte[fis.available()];
System.in.read(b);//读入字节数组
for (byte c : b) {
System.out.println(c);//打印字节数组
}
fis.close();
//2.4解除输入重定向(使用标准输入)
System.setIn(System.in);
}
}

【重定向输出到目标文件且打印在控制台】
eclipse中:右键目标类>run as>run Configrations>common选项卡>Standard Input and Output>Allocate Console打钩选择在控制台输出,File打钩选择在文件中输出,可同时选中

[Console output redirected to file:C:\Users\Administrator\Desktop\123.log]
//打印信息仍然存在于控制台,但与此同时也写入了目标文件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: