标准输入输出流概述和输出语句
- 1.什么是标准输入输出流
- System.in是InputStream,标准输入流,默认可以从键盘输入读取字节数据。
- System.out是PrintStream,标注输出流,默认可以向Console中输出字符和字节数据。
- 2.修改标准输入输出流
-
修改输入流:System.setIn(InputStream)
-
修改输出流:System.setOut(PrintStream)
System.setIn(new FileInputStream("a.txt")); //修改标准输入流 System.setOut(new PrintStream("b.txt")); //修改标准输出流 InputStream in = System.in; //获取标准输入流 PrintStream ps = System.out; //获取标准输出流 int b; while((b = in.read()) != -1) { //从a.txt上读取数据 ps.write(b); //将数据写到b.txt上 } in.close(); ps.close();
-
package com.heima.otherio;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
public class Demo08_SystemInOut {
/**
* @param args
* 只有内存和硬盘产生一个关联才需要关流.
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// demo01();
System.setIn(new FileInputStream("a.txt")); //改变标准输入流
System.setOut(new PrintStream("b.txt")); //改变标注输出流
InputStream is = System.in; //获取标准的键盘输入流,默认指向键盘,改变后指向文件
PrintStream ps = System.out; //获取标准输出流,默认指向的是控制台,改变后就指向文件
int b;
while((b = is.read()) != -1) {
ps.write(b);
}
//System.out.println(); //也是一个输出流,不用关,因为没有和硬盘上的文件产生关联的管道
is.close();
ps.close();
}
private static void demo01() throws IOException {
InputStream is = System.in;
int x = is.read(); //只读第一个字节
System.out.println(x);
is.close(); //这里的流不需要关的,因为没有让内存和硬盘产生关联.
InputStream is2 = System.in;
int y = is2.read(); //只读第一个字节
System.out.println(y);
is.close();
}
}