從數據來源或者說是操作對象角度看,IO 類可以分為:
1、文件:FileInputStream、FileOutputStream、FileReader、FileWriter
2、數組: ByteArrayInputStream、ByteArrayOutputStream、 CharArrayReader、CharArrayWriter
3、管道操作:PipedInputStream、PipedOutputStream、PipedReader、PipedWriter
4、基本數據類型:DataInputStream、DataOutputStream
5、緩沖操作:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
6、打印:PrintStream、PrintWriter
7、對象序列化反序列化:ObjectInputStream、ObjectOutputStream
8、轉換:InputStreamReader、OutputStreWriter
字節流和字符流的區別:
字節流讀取單個字節,字符流讀取單個字符(一個字符根據編碼的不同,對應的字節也不同,如 UTF-8 編碼是 3 個字節,中文編碼是 2 個字節。)字節流用來處理二進制文件(圖片、MP3、視頻文件),字符流用來處理文本文件.
IO類和相關方法
IO 類雖然很多,但最基本的是 4 個抽象類:InputStream、OutputStream、Reader、Writer。最基本的方法也就是一個讀 read() 方法、一個寫 write() 方法。
文本文件的寫入和讀取
write() 方法和 Append() 方法并不是像方法名那樣,一個是覆蓋內容,一個是追加內容,append() 內部也是 write() 方法實現的,也非說區別,也就是 append() 方法可以直接寫 null,而 write() 方法需要把 null 當成一個字符串寫入,所以兩者并無本質的區別。需要注意的是這里并沒有指定文件編碼,可能會出現亂碼的問題。






