首先,两者的用法几乎一样,只是操作的数据单元不同。
字节流操作的数据单元是8位的字节。
字符流操作的数据单元是16位的字符。
InputStream/OutputStream:字节流的IO基类
Reader/Writer: 字符流的IO基类
InputStream/Reader: 输入流
OutputStream/Writer: 输出流
InputStream/OutputStream与Reader/Writer都是抽象类,由这四个类派生了所有JAVA 40多个IO类。
输出/输入流在输入输出时,JAVA都会使用一个隐式指针来记录当前准备读取/或即将写入的位置,并在4个类里提供一些方法来控制指针的移动。
输入流的创建:
FileInputStream fis = new FileInputStream("文件路径");//字节流
FileReader fr = new FileReader("文件路径");//字符流
输出流的创建:
FileOutputStream fis = new FileOutputStream("文件路径");//字节流
FileWriter fr = new FileWriter("文件路径");//字符流