本系列為筆者學習Javase的課堂筆記,視頻資源為B站黑馬程序員出品的《黑馬程序員Java+AI智能輔助編程全套視頻教程,java零基礎入門到大牛一套通關》,章節分布參考視頻教程,為同樣學習Javase系列課程的同學們提供參考。
01 緩沖字節流
BufferedInputstream
緩沖字節輸入流可以提高字節輸入流讀取數據的性能。
InputStream fis = new FileInputStream(srcPath);
InputStream bis = new BufferedInputStream(fis); //我勒個偷天換日
02 緩沖字符流
① BufferedReader
緩沖字符輸入流自帶8K(8192)
的字符緩沖池,可以提高字符輸入流讀取字符數據的性能。
Reader fr = new FileReader("day03-file-io\\src\\dlei08.txt");
Reader br = new BufferedReader(fr);//一行一行讀
System.out.println(br.readline());//循環版 一行一行讀
String line;
while((line = br.readline()) != null){System.out.println(line);
}
注:優雅,實在是太優雅了!
② BufferedWriter
緩沖字符輸出流自帶8K
的字符緩沖池,可以提高字符輸出流寫字符數據的性能。
Writer fw = new FileWriter("day03-file-io/src/dlei07-out.txt", true);
BufferedWriter bw = new BufferedWriter(fw);bw.newLine(); //換行
注:Shift + F6
召喚全文篩選 + 替換。
03 案例:復制文言文
需求: 將文言文《出師表》的文章順序進行恢復到一個新文件中。
分析:
package FileDemo;import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Test {public static void main(String[] args) {//目標:復制文言文//1.創建緩沖字符輸入流管道try (BufferedReader br = new BufferedReader(new FileReader("0416-oop\\src\\FileDemo\\chushibiao.txt"));BufferedWriter bw = new BufferedWriter(new FileWriter("0416-oop\\src\\FileDemo\\chushibiao2.txt"));) {//2.創建List集合,按行讀取數據并排序List<String> data = new ArrayList<>();String line;while((line = br.readLine()) != null){data.add(line);}Collections.sort(data);System.out.println(data);//3.遍歷List集合,按行輸出數據for(String s : data){bw.write(s);bw.newLine(); //換行}System.out.println("執行完畢!");}catch (Exception e){e.printStackTrace();}}
}
04 字符輸入轉換流
InputStreamReader
(字符輸入轉換流) 解決不同編碼時,字符流讀取文本內容亂碼的問題。
先獲取文件的原始字節流,再將其按真實的字符集編碼轉成字符輸入流,這樣字符輸入流中的字符就不亂碼了。
05 IO 框架
什么是框架?
框架(Framework)
是一個預先寫好的代碼庫或一組工具,旨在簡化和加速開發過程,一般是把類、接口等編譯成class
形式,再壓縮成一個jar
結尾的文件發行出去。
什么是IO
框架?
IO
框架封裝了Java
提供的對文件、數據進行操作的代碼,對外提供了更簡單的方式來對文件進行操作,對數據進行讀寫等。
導入步驟:
- 在項目中創建一個文件夾:
lib
- 將
commons-io-2.6.jar
文件復制到lib
文件夾 - 在
jar
文件上點右鍵,選擇Add as Library ->
點擊OK
- 在類中導包使用
Commons-io
框架
Commons-io
是apache
開源基金組織提供的一組有關IO
操作的小框架,目的是提高IO
流的開發效率。