IO 流
Input Output Stream(輸入輸出流):以流的方式進行輸入輸出
與檔案或資料互動的內容稱為 IO 流,在 JDK 中java.io包下
input(輸入流):
System.in(標準輸入流)
output(輸出流):System.out(標準輸出流)
一. File 類
File 類代表一個檔案或檔案夾
| 常用方法 | 方法描述 |
|---|---|
| createNewFile() | 創建新檔案 |
| exists() | 判斷檔案是否存在 |
| delete() | 洗掉檔案或檔案夾,洗掉檔案夾時只能洗掉空檔案夾 |
| mkdir() | 創建目錄,不包含子目錄 |
| mkdirs() | 創建目錄,包含子目錄 |
| listFiles() | 獲取指定目錄的檔案與檔案夾,回傳一個File陣列 |
| getName() | 獲取檔案或檔案夾的名稱 |
| getPath() | 獲取檔案或檔案夾的完整路徑 |
| isDirectory() | 判斷是否為一個檔案夾 |
| isFile() | 判斷是否為一個檔案 |
| isHidden() | 判斷是否為一個隱藏檔案 |
| length() | 獲取檔案的大小,單位為位元組 |
二. RandomAccessFile(隨機訪問檔案的讀取與寫入)
-
讀取:
raf.read(byte[] data)位元組方式讀取 -
寫入:
raf.write(btye[] data)寫入內容的位元組陣列
三. 檔案位元組流(☆)
-
FileInputStream(檔案位元組輸入流):用來讀取檔案 -
FileOutputStream(檔案位元組輸出流):用來寫入檔案
四. 檔案字符流(☆)
FileReader(檔案字符輸入流):用來讀取檔案FileWriter(檔案字符輸出流):用來寫入檔案
五. Java 中流的分類(☆)
-
位元組流:
-
InputStream(位元組輸入流):用來讀取檔案 -
OutputStream(位元組輸出流):用來寫入檔案
-
-
字符流:
-
Reader(字符輸入流):用來讀取檔案 -
Writer(字符輸出流):用來寫入檔案
-
六. 位元組流與字符流的區別
-
字符流的底層就是位元組流,字符流是對位元組流的一種封裝
-
位元組流可以讀取任何檔案,字符流只能讀取文本
-
使用字符流需要考慮字符編碼,位元組流不需要
-
字符流可以按字符大小讀取,也可以一行一行讀取,位元組流只能按位元組大小讀取
七. ObjectInputStream(物件流)
物件流可以把物件存盤到硬碟中,也可以從硬碟中讀取一個物件,在 Java 中稱為序列化與反序列化
序列化物件必須實作java.io.Serializable
分配了記憶體空間的物件做序列化操作,必須實作java.io.SeriaZable
| ObjectInputStream | 物件輸入流 | 反序列化 | 把物件從硬碟中讀取到記憶體中 |
| ObjectOutputStream | 物件輸出流 | 序列化 | 把記憶體中的物件寫入到硬碟中 |
八. 緩沖流
- 優點:減少對硬碟的IO讀寫,提高讀寫效率
| BufferedInputStream | 位元組緩沖輸入流 | 默認大小8K |
| BufferedOutputStream | 位元組緩沖輸出流 | 默認大小8K |
| BufferedReader | 位元組緩沖輸入流 | |
| BufferedWriter | 位元組緩沖輸出流 |
九. 序列化與反序列化
-
序列化:將 Java 程式中的有序不重復的物件保存在某種介質中
-
反序列化:將介質中的有序不重復的物件讀入到 Java 程式中
-
持久化:將 Java 程式中的資料永久的保存在某種介質(電腦磁盤,資料據庫)當中
序列化特點:
1. 序列化的物件必須要實作Serializable介面(可序列化)
2. 靜態的屬性不能夠被序列化
3. 若被序列化的物件中含有類屬性時,則該屬性也必須是可序列化的
十. 克隆
克隆的物件必須要實作
Cloneable介面
Sheep p = new Sheep();
Sheep pp = (Sheep)p.clone();
課后作業
-
遍歷指定目錄下的所有檔案(只要檔案),包含子目錄,此方法回傳一個 File 串列
-
遍歷指定目錄下的指定檔案(后綴名),包含子目錄,此方法回傳一個 File 串列
-
洗掉指定的檔案夾,包含子目錄
-
使用位元組輸入輸出流復制檔案
-
使用位元組輸入輸出流復制檔案夾,包含子目錄
本文來自博客園,作者:Schieber,轉載請注明原文鏈接:https://www.cnblogs.com/xiqingbo/p/java-19.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428494.html
標籤:其他
上一篇:GCC 使用庫檔案名進行鏈接
下一篇:ECharts回圈push資料到series,從而實作series的動態處理之(一)(先用給定資料,后期用后端回傳資料)
