現在感覺進階基礎集合IO流和線程學不進去了該怎么辦?
IO
I input輸入(讀)O output輸出(寫)
廣義上存儲介質/設備/容器之間的數據傳輸就稱為IO
內存<->硬盤/文件
設備A <->設備B
容器 <->容器
客戶端<->服務器
Java中對輸入輸出提供了API java.io包
File類File類是文件、文件夾和磁盤分區的抽象常用的方法:
--創建createNewFile()
創建一個新的文件mkdir()
創建單個文件夾mkdirs()
創建多級目錄注意:
判斷文件是否存在 exists()--
刪除delete()刪除文件或目錄注意:先刪文件再刪目錄
--查詢
listRoots() 查詢磁盤的分區情況
listRoots()[0].listFiles() 獲取某個磁盤分區所有文件目錄及文件
listRoots()[0].list () 獲取某個磁盤分區所有文件目錄及文件
listFiles() 查看當前目錄下的所有子目錄(包含文件)
isFile() 判斷是否是文件
isDirectory()判斷是否是文件目錄 getParentFile() 獲取上級目錄getAbsolutePath() 獲取絕對路徑
先獲取當前文件的絕對路徑,在獲取上級目錄 file.getAbsoluteFile().getParentFile()
length() 獲取文件的長度(字節大小)
toURI() 獲取URI(統一資源管理器)地址(含URL地址)
字節流IO操作,在計算機中其本質就是傳遞二進制數和字節。 針對輸入輸出有2個方向:OutputStreamInputStream 對輸入、輸出流java中又提供了兩個子類去操作文件:FileOutputStreamFileInputStream 文件寫操作的步驟:
1、[可選]創建File
2、創建FileOutputStream
3、write()方法進行寫操作
4、清空緩存區
5、關閉流 文件讀操作的步驟:
1、[可選]創建File
2、創建FileInputStream
3、read()方法進行讀操作
4、清空緩存區
5、關閉流
注意:1、 對OutputStream和InputStream之間進行IO操作,也就是涉及文本信息的傳遞,需要用byte[]與String之間轉換,而且要注意charset(編碼)的統一。
2、 用ByteArrayOutputStream作為存放字節數組的容器
3、 清空緩存區4、 關閉相應的流 文件拷貝示例: