- Java 中的字節流處理的最基本單位為 1 個字節,通常用來處理二進制數據。字節流類 InputStream 和 OutputStream 類均為抽象類,代表了基本的輸入字節流和輸出字節流。
- Java 中的字符流處理的最基本的單元是 Unicode 代碼單元(大小2字節),通常用來處理文本數據。
區別:
- 字節流操作的基本單元是字節;字符流操作的基本單元是字符
- 字節流默認不使用緩沖區;字符流使用緩沖區
- 字節流通常用於處理二進制數據,不支持直接讀寫字符;字符流通常用於處理文本數據
- 在讀寫文件需要對文本內容進行處理:按行處理、比較特定字符的時候一般會選擇字符流;僅僅讀寫文件,不處理內容,一般選擇字節流
特征:
- 以 stream 結尾都是字節流,reader 和 writer 結尾是字符流
- InputStream 是所有字節輸入流的父類,OutputStream 是所有字節輸出流的父類
- Reader 是字符輸入流的父類,Writer 是字符輸出流的父類
常見的字節流:
- 文件流:FileOutputStream 和 FileInputStream
- 緩沖流:BufferedOutputStream 和 BufferedInputStream
- 對象流:ObjectOutputStream 和 ObjectInputStream
常見的字符流:
- 字節轉字符流:InputStreamReader 和 OutputStreamWriter
- 緩沖字符流:PrintWriter 和 BufferedReader
