I/O流
我理解的,I/O流分为传输字节的流和传输字符的流,很明显后者是为了中文而准备的;而且根据传流的方向不同,将字节或者字符以流的形式从源传往端或者从端传向源(图一)
图一:什么是I/O流?
怎么来使用I/O流? I/O流有5常用个类: File、InputStream、OutputStream、Reader、Writer
- File(文件信息与管理):File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹。 File类保存文件或目录的各种元数据信息,包括文件名、文件长度、最后修改时间、是否可读、获取当前文件的路径名,判断指定文件是否存在、获得当前目录中的文件列表,创建、删除文件和目录等方法。
- InputStream(二进制格式操作):抽象类,基于字节的输入流,是所有输入流的父类。定义了所有输入流都具有的共同特征。
- OutputStream(二进制格式操作):抽象类。基于字节的输出流。是所有输出流的父类。定义了所有输出流都具有的共同特征。
- Reader(文件格式操作):抽象类,基于字符的输入操作。
- Writer(文件格式操作):抽象类,基于字符的输出操作。
图二:字符流和字节流
当然,我们更多的是对于中文的读写,一般使用字符流,涉及缓存(Buffer)的概念
BufferedReader: 是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中,避免中文乱码,接收任意长度的数据。
StringReader:是字符输入流,Reader的子类,从一个String中读取,所以需要一个String ,通过构造方法传递
StringWriter是字符输出流,Writer的子类,写入到一个String中去,所以它内部提供了一个StringBuffer中用来保存数据
光说不做怎么行? 下一篇我会通过图书管理系统的一个小步骤详细谈一下怎么使用I/O流!