JavaSE(十八)——IO流之字符流
文章目錄
- 1. 概述
- 2. OutputStreamWriter
- 3. InputStreamReader
- 4. 字符流復制文本文件
- 5. FileWriter、FileReader
- 6. 高效的字符流
- 7. 案例演示
1. 概述
- 字符流只能讀寫文本文件
Reader :字符輸入流的父類 InputStreamReader 是字節流通向字符流的橋梁
Writer :字符輸出流的父類 OutputStreamWriter 是字符流通向字節流的橋梁 - 字符流出現的原因:由于字節流操作中文不是特別方便,所以java就提供了字符流。
- 編碼: 就是把字符串轉換成字節數組 =>字符流 = 字節流 + 編碼表
2. OutputStreamWriter
-
字符流寫數據的方式
public void write(int c) 寫一個字符
public void write(char[] cbuf) 寫一個字符數組
public void write(char[] cbuf,int off,int len) 寫一個字符數組的一部分
public void write(String str) 寫一個字符串
public void write(String str,int off,int len) 寫一個字符串的一部分 -
案例代碼
-
運行結果
-
OutputStreamWriter的構造方法
OutputStreamWriter(OutputStream out):根據默認編碼(GBK)把字節流的數據轉換為字符流
OutputStreamWriter(OutputStream out,String charsetName):根據指定編碼把字節流數據轉換為字符流
3. InputStreamReader
-
字符流讀數據的方式
public int read() 一次讀取一個字符
public int read(char[] cbuf) 一次讀取一個字符數組 如果沒有讀到 返回-1 -
InputStreamReader的構造方法
InputStreamReader(InputStream is):用默認的編碼(GBK)讀取數據
InputStreamReader(InputStream is,String charsetName):用指定的編碼讀取數據 -
案例代碼
-
運行結果
4. 字符流復制文本文件
- 一次讀取一個字符,寫入一個字符來復制文本文件
- 案例代碼
- 運行結果
- 一次讀取一個字符數組,寫入一個字符數組來復制文本文件
- 案例代碼
- 運行結果
5. FileWriter、FileReader
- 父類-------------------------------子類
OutputStreamWriter-----------FileWriter
InputStreamReader----------- FileReader
FileReader(File file)
在給定從中讀取數據的 File 的情況下創建一個新 FileReader
FileReader(String fileName)
在給定從中讀取數據的文件名的情況下創建一個新 FileReader - 案例代碼
- 運行結果
6. 高效的字符流
-
BufferedReader 、 BufferedWriter
BufferedReader(Reader in)
創建一個使用默認大小輸入緩沖區的緩沖字符輸入流
BufferedWriter(Writer out)
創建一個使用默認大小輸出緩沖區的緩沖字符輸出流 -
案例代碼
-
運行結果
-
高效的字符流里面有自己特有的方法比較好用
BufferedReader readLine() 一次讀取一行內容
BufferedWriter newLine() 寫入換行符,具有平臺兼容性
write(line) 一次寫入一行內容 -
代碼案例
7. 案例演示
- 需求:把ArrayList集合中的字符串數據存儲到文本文件
- 案例代碼
- 運行結果
總結
以上是生活随笔為你收集整理的JavaSE(十八)——IO流之字符流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaSE(十七)——IO流之字节流
- 下一篇: 前端(一)——HTML之基本标签、图片标