java複習第8天---8.2---IO流---字符流
目錄
內容
1、概述
當使用字符流讀取文本文件時,可能會有問題。遇到中文字符時,不能不會顯示完整的字符,因爲一箇中文字符可能佔用多個字符存儲。所以java提供字符流,以字符爲單位,專門處理文本文件。
2、Reader
字符輸入流父類,常用方法:
修飾符 | 返回值類型 | 方法名 | 參數列表 | 描述 |
---|---|---|---|---|
public | void | close | 關閉此輸入流並釋放與此輸入流向關聯的系統資源 | |
public abstract | int | read | 從輸入流中讀取一個字符數據 | |
public | int | read | char[] cbuf | 從輸入流中讀取b.length個字符的數據存入指定字符數組cbug中,返回實際讀取的字符數 |
2.1、FileReader
文件字符輸入流。
- 常用構造方法
參數列表 | 描述 |
---|---|
File file | 通過打開與實際文件的連接創建一個 FileReader ,該文件由文件系統中的 File對象 file命名。 |
String name | 通過打開與實際文件的連接來創建一個 FileReader ,該文件由文件系統中的路徑名 name命名。 |
-
示例1.2.1-1:讀取a.txt中的內容並顯示
package io.stream.reader.fileReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class TestFileReader1 { public static void main(String[] args) throws IOException { String source = "f:\\test\\a.txt"; FileReader fr = new FileReader(source); char[] buf = new char[1024]; int len; while((len = fr.read(buf)) != -1) { System.out.println(new String(buf, 0, len)); } fr.close(); } } 測試結果: 歡迎入坑JAVA!《JAVA從入門到放棄》 《JAVA從入門到放棄》
3、Writer
Outputstream爲字符輸出流的父類,把信息傳輸到指定位置,提供基本的功能方法:
修飾符 | 返回值類型 | 方法名 | 參數列表 | 描述 |
---|---|---|---|---|
public | void | close | 關閉此輸出流並釋放與此流相關的系統資源 | |
public | void | flush | 刷新輸出流並強制任何緩衝區字符寫出 | |
public | void | write | byte[] b | 把b.length字符從指定的字符數組寫入此輸出流 |
public | void | write | byte[] b, int off, int len | 把len字符從指定字符數組b的偏移量off處開始寫入此輸出流 |
public abstract | void | write | int len | 將指定的字符寫入此輸出流 |
3.1、FileWriter
FileOutputStream 文件字符輸出流,用於數據寫入文件當中。
- 常用構造方法
參數類別 | 描述 |
---|---|
File file | 創建文件輸出流到以寫入File對象對應的文件中 |
File file, boolean append | 創建文件輸出流以追加方式寫入由指定的 File對象表示的文件 |
String name | 創建文件輸出流以寫入指定名稱的文件 |
String name, boolean append | 創建文件輸出流以追加方式寫入指定名稱的文件 |
-
使用步驟
- 創建文件輸出流對象,指定寫入文件
- 調用write方法把數據寫入文件
- 調用close方法關閉輸出流釋放相關的系統資源
-
示例3.1-1:把指定內容輸入d.txt中,內容:"+ 使用步驟
- 創建文件輸出流對象,指定寫入文件
- 調用write方法把數據寫入文件
- 調用close方法關閉輸出流釋放相關的系統資源"
-
代碼3.1-1:
package io.stream.reader.fileWriter; import java.io.FileWriter; import java.io.IOException; public class TestFileWriter1 { public static void main(String[] args) throws IOException { String path = "f:\\test\\d.txt"; FileWriter fw = new FileWriter(path); String txt = "+ 使用步驟\r\n" + " 1. 創建文件輸出流對象,指定寫入文件\r\n" + " 2. 調用write方法把數據寫入文件\r\n" + " 3. 調用close方法關閉輸出流釋放相關的系統資源"; fw.write(txt.toCharArray()); fw.close(); } } 測試結果:自己測試
4、字符流文本複製
-
需求:把d.txt 文件內容複製到e.txt中
-
代碼4-1:
package io.stream.charStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FileCopy { public static void main(String[] args) throws IOException { String source = "f:\\test\\d.txt"; String dest = "f:\\test\\e.txt"; fileCopy(source, dest); } public static void fileCopy(String source, String dest) throws IOException { FileReader fis = new FileReader(source); FileWriter fos = new FileWriter(dest); char[] b = new char[1024]; int len; while((len = fis.read(b)) != -1) { fos.write(b, 0, len); } fis.close(); fos.close(); } } 測試結果: d.txt + 使用步驟 1. 創建文件輸出流對象,指定寫入文件 2. 調用write方法把數據寫入文件 3. 調用close方法關閉輸出流釋放相關的系統資源 e.txt + 使用步驟 1. 創建文件輸出流對象,指定寫入文件 2. 調用write方法把數據寫入文件 3. 調用close方法關閉輸出流釋放相關的系統資源
後記 :
本項目爲參考某馬視頻開發,相關視頻及配套資料可自行度娘或者聯繫本人。上面爲自己編寫的開發文檔,持續更新。歡迎交流,本人QQ:806797785
前端項目源代碼地址:https://gitee.com/gaogzhen/vue-leyou
後端JAVA源代碼地址:https://gitee.com/gaogzhen/JAVA