JAVA中IO流主要分为两大类:
- 字节流:InputStream+OutputStream
- 字符流:Reader+Writer
字节流:
- InputStream是所有字节输入流的父类
- OutputStream是所有字节输出流的父类
- FileInputStream从文件中读取数据
- FileOutpuStream将数据写入到文件中
- ByteArrayInputStream从byte数组中读取数据
- ByteArrayOutputStream将数据写入到内存中
- PrintStream是一个包装类,它将数据输出到指定的流中
- System.in是InputStream的子类的一个实例,指定从键盘中读取数据(可以重定向)
- System.out/System.err是PrintStream的实例,指定将数据写入到屏幕中(可以重定向)
字符流:
- Reader 所有字符输入流的父类
- Writer 所有字符输出流的父类
- FileReader从文件中读取字符串
- FileWriter向文件中输出字符串
- InputStreamReader 从InputStream中读取字符
- OutputStreamWriter 将字符输出到OutputStream中
- BufferedReader从指定的Reader中读取字符
- BufferedWriter将字符写入到Writer指定的流中
- Scanner可以从字节流中读取字符
下面举个例子,从键盘中读取数据并输出到屏幕中(利用BufferedReader实现)
import java.util.*;
import java.io.*; public class Hello
{ public static void main(String[] args)
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try
{
System.out.print("please enter your message: ");
String line = br.readLine();
System.out.print(line);
}catch(IOException ioe)
{
ioe.printStackTrace();
}
}
}
运行结果:
please enter your message: hello guys, nice to meet you. My back hurts.
hello guys, nice to meet you. My back hurts.