java io流
Java中按照流的不同方向分为输入流和输出流,凡是含有in的,都可理解为输入流,输入流即从文件读取到程序,凡是含有out的,都可以理解为输出流,输出流即从程序输出到文件。按照单位分的话,可以分为字节流和字符流,字节流(读取-二进制文件。写入、拷贝-文本、二进制文件)中包括:
InputStream--字节输入流的基类(抽象类)
OutputStream--字节输出流的基类(抽象类)
FileInputStream--文件字节输入流
FileOutputStream--文件字节输出流
FilterInputStream--过滤器字节输入流
FilterOutputStream--过滤器字节输出流
BufferedInputStream--带有缓冲区字节输入流
BufferedOutputStream--带有缓冲区字节输出流
字节流之间的继承关系
字符流(读取、写入、拷贝文本)包括:
Reader--字符输入流(抽象类)
Writer--字符输出流(抽象类)
InputStreamReader--字符输入转换流
OutputStreamWriter--字符输出转换流
FileReader--文件字符输入流
FileWriter--文件字符输出流
BufferedReader--带有缓冲区字符输入流
BufferedWriter--带有缓冲区字符输出流
缓冲区默认大小是8192个字符,即1024*8
字符流之间的继承关系
其余的各种流:
对象流:(在文件中存储对象)
ObjectInputStream--对象输入流
ObjectOutputStream--对象输出流
要想类对象存入文件,此类必须实现序列化接口,即实现Serializable,这是一个标记型接口,接口中没有要实现的方法,序列化的过程是从程序到文件,而反序列化是从文件到程序。
打印流:
PrintStream:可以将字节流封装成打印流
PrintWriter:可以将字节流、字符流封装成打印流
可以用其进行重定向操作,即重新定义系统标准输入、输出流的方向
随机访问流:RandomAccessFile
有两种模式: r--读取 rw--读写
内存流:
ByteArrayInputStream--内存输入流
ByteArrayOutoutStream--内存输出流
内存流是关不掉的
NIO-new io:面向缓冲区的IO流
Java NIO 由以下几个核心部分组成:
Buffers--缓冲区:针对系统的缓冲区
Channels--通道:类似于BIO里面的流
Selectors--选择器