流的分类:
按流向:输入流,输出流
按数据单位:
字节流(一次读入或读出是8位二进制,即一个字节)
字符流(一次读入或读出是16位二进制,即一个字符)
按处理类型:
节点流(直接与数据源相连,读入或读出)
处理流(与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流)
对文件进行操作:
FileInputStream:字节输入流
FileOutputStream:字节输出流
FileReader:字符输入流
FileWriter:字符输出流
对管道进行操作:
PipedInputStream、PipedOutputStream(主要用于线程操作)
PipedReader、PipedWriter
字节/字符数组:
ByteArrayInputStream、ByteArrayOutputStream(在内存中开辟了一个字节数组)
CharArrayReader、CharArrayWriter(在内存中开辟了一个字符数组)
Buffer缓冲流(避免每次直接读取硬盘):
BufferedInputStream、BufferedOutputStream
BufferedReader、BufferedWriter
转化流:InputStreamReader、OutputStreamWriter
数据流:DataInputStream、DataOutputStream(数据流可以直接输出float类型或long类型,提高了数据读写的效率)
打印流:printStream,printWriter(一般是打印到控制台,可以进行控制打印的地方)
对象流:ObjectInputStream、ObjectOutputStream(把封装的对象直接输出,而不是一个个再转换成字符串再输出)
序列化流:SequenceInputStream(把对象直接转换成二进制,写入介质中)