IO流分类
一、流的概念
流是一种数据在内存与外部设备之间的中间形式,数据在磁盘或硬盘中是以文件的形式存储,而在内存中是单纯的以字节存储的(数据寄存器),当需要从外部设备读取数据或者从内存输出数据到外部设备时,就需要产生流。
IO流即输入输出流,这里的输入输出指的是针对内存的输入输出,输入到内存的流即为输入流,从内存输出的流即为输出流。
二、流的作用
外部设备与内存的数据结构不同,数据通过流的方式在两者之间传输。
三、流相关的类
java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。
java.io.InputStream抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入流的基本共性功能方法。
java.io.FileOutputStream类是文件输出流,是字节输出流(OutputStream)类的子类,用于将数据写出到文件。
java.io.FileInputStream类是文件输入流,从文件中读取字节。
java.io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。
java.io.FileReader
java.io.Writer
java.io.FileWriter
四、流的分类
根据数据的流向分为:输入流和输出流。
输入流 :把数据从其他设备上读取到内存中的流。
输出流 :把数据从内存 中写出到其他设备上的流。
根据数据传输的单位:字节流和字符流
字节流:以字节为单位,读写数据的流。
字符流:以字符为单位,读写数据的流
根据有无缓冲区:高端流和低端流
字节缓冲流:BufferedInputStream,BufferedOutputStream
字符缓冲流:BufferedReader,BufferedWriter
五、流的使用
步骤:
创建流对象。
循环读取/写入。
关闭流。
public class StreamTest { public static void main(String[] args) throws IOException { //创建输入流对象,产生输入流(字节流) FileInputStream file = new FileInputStream("d:/1.txt"); /* * 循环读取 */ int in ; while((in=file.read())!=-1){
//强转成字符无法识别汉字,因为一个汉字占用两到三个字节,如果要识别汉字需要使用字符流
System.out.print((char)in);
} //关闭流 file.close(); } }

浙公网安备 33010602011771号