IO流
一.file類
File類是io包中唯一表示磁盤文件和磁盤目錄的對象的路徑
該類包含了創建、刪除文件、重命名文件、判斷文件是否存在,查詢等功能
註意:只能設置和獲取文件本身的信息,不能設置和獲取文件的具體內容
C:\\JAVAprogram\\Java\\jdk1.8.0_111
獲取File路徑
操作file路徑和名稱
File getAbsoluteFile() :獲取絕對路徑
String getAbsolutePath() :獲取絕對路徑
String getPath() :獲取文件路徑
String getName :獲取文件名稱
File getParentFile() :獲取上級目錄文件
String getparent() 獲取上級目錄路徑
檢測File狀態的方法
boolean canExcute() 是否可執行文件
boolean canRead() 是否可讀
boolean canWrite() 是否可寫
boolean isHidden() 是否隱藏
long lastModified() 判斷文件最後修改時間
long length() 文件長度大小(字節)
File類中方法-文件操作
Boolean isFile() 是否是文件
Boolean createNewFile() 創建新的文件
Boolean delete() 刪除文件
Void deleteOnExit() 在jvm停止時刪除文件
Boolean exists() 判斷文件是否存在
Boolean renameTo(File dest) 重新修改名字
File類中方法-目錄操作
Boolean isDirectory() 判斷是否是目錄
Boolean mkdir() 創建當前目錄
Boolean mkdirs() 創建當前目錄和上級目錄
String[] list() 列出所有的文件名
File[] listFiles() 列出所有文件對象
Static File[] listRoots() 列出系統盤符
二.IO操作
什麽是IO(input/output):輸入和輸出
IO設備:和電腦通信的設備
輸入設備:麥克風、鍵盤、鼠標
輸出設備:打印機、顯示器、投影儀
為什麽程序需要IO
案例1.打遊戲操作,得分較高,存儲遊戲的信息
此時需要把遊戲中的數據存儲起來,只能存儲在文件中。
案例2.打遊戲操作,查看英雄榜,數據存儲在文件中,需要去訪問文件內容
案例3.上傳和下載
IO操作是個相對的過程:
程序需要數據:把數據流入到程序中>>>輸入
程序保存數據:把數據輸出到文件中>>>輸出
IO流的分類
站在不同的角度,分類的方式是不一樣的:
1.根據流向劃分:輸入流 輸出流
2.根據數據的單位劃分:字節流 字符流
3.根據功能不同的劃分:節點流 包裝流
四大基流:字節輸入流 字節輸出流 字符輸入流 字符輸出流
四大基流都是抽象類,其他流都是繼承於這四大流
我們不能創建四大基流的對象,只能創建其子類對象。無論是什麽流,都有close()方法,用來關閉資 源。
如果操作文件,就得開通一個流對象關聯我們的磁盤文件,如果不關閉資源,磁盤的文件一直被程序引用著,不能刪除也不能修改。
操作IO流的步驟/模板:
1.創建源或者目標對象(水井)。
文件流 輸入操作:文件中的數據流向程序,此時文件是源,程序是目標
輸出操作:把程序中的數據流向文件中,文件是目標,程序是源
2.創建IO流對象(水管)
輸入操作:創建輸入流對象
輸出操作:創建輸出流對象
3.具體的IO操作
輸入操作:輸入流對象的 read 方法
輸出操作:輸出流對象的write方法
4.關閉資源/釋放資源
輸入操作:輸入流對象的close()方法
輸出操作:輸出流對象的close()方法
IO操作:讀進來,寫出去
讀進來:強調的是輸入,說明是用read方法
寫出去:強調的是輸出,說明是用write方法
文件流:程序和文件打交道
此時談論的文件是純文本文件(txt記事本)
FileInputStream 文件的字節輸入流
FileOutputStream 文件的字節輸出流
FileReader 文件的字符輸入流
FileWriter 文件的字符輸出流
IO流