Java IO
主要体系分为字节流(二进制数据传输),字符流(字符传输)
注:二进制数据可以通过不同的编码规则进行编码,输出不同的字符。相同的二进制串在不同的编码规则下可以表示不同的意思。(相当于解读的方法不同,得到的意思也不同)
注2:字节流以字节为单位进行传输,字符流以多个字节为单位进行传输,因为计算机中是以单字节(char)或者多字节(如UTF-8)来进行字符编码的
字节流:InputStream(输入流)、OutputStream(输出流)
字符流:Reader(读入)、Printer(输出)
操作对象:
- 文件(File)
- 数组(ByteArray,CharArray)
- 管道(Piped)
- 基本数据类型(Data)
- 缓冲操作(Buffered)
- 打印操作(Print)
- 对象的序列化和反序列化(将对象进行持久化保存)(Object)
- 转换(InputStreamReader,OutputStreamWriter)
- 字符串 (有疑问)
类的命名规则:
操作字节流的类名为 操作对象+输入流(InputStream)/输出流(OutputStream)
操作字符流的类名为 操作对象+读入(Reader)/输出(Printer)
相关类:
- 文件(File)
- 字节流处理
- FileInputStream
- FileOutputStream
- 字符流处理
- FileReader
- FileWriter
- 字节流处理
- 数组(ByteArray 字节数组,CharArray 字符数组)
- 字节流处理
- ByteArrayInputStream
- ByteArrayOutputStream
- 字符流处理
- CharArrayReader
- CharArrayWriter
- 字节流处理
- 管道(Piped)
- 字节流处理
- PipedInputStream
- PipedOutputStream
- 字符流处理
- PipedReader
- PipedWriter
- 字节流处理
- 基本数据类型(Data)
- 字节流处理
- DataInputStream
- DataOutputStream
- 字节流处理
注:该类操作对象没有字符流,因为字符串不是基本类型
- 缓冲操作(Buffered)
- 字节流处理
- BufferedInputStream
- BufferedOutputStream
- 字符流处理
- BufferedReader
- BufferedWriter
- 字节流处理
- 打印操作(Print)
- 字节流处理
- PrintStream
- 字符流处理
- PrintWriter
- 字节流处理
注:打印操作只需要输出
- 对象的序列化和反序列化(将对象进行持久化保存)(Object)
- 字节流处理
- ObjectInputStream
- ObjectOutputStream
- 字节流处理
注:序列化操作是通过字节流进行的,因此没有字符流类操作
- 转换(InputStreamReader,OutputStreamWriter)
输入字节流转化为字符读取:InputStreamReader
输出字节流转化为字符输出:OutputStreamWriter
- 字符串(StringBuffer)(存在疑问)
Java中字符和字节转换:
str.getBytes():字符串转化为字节数组
new String(byte[] , Standard.UTF-8): 根据指定编码格式将字节编码成字符