java文件讀寫操作實(shí)例詳解
File類
它是文件和目錄路徑名的抽象表示。
文件和目錄是可以通過File封裝成對(duì)象的。
對(duì)于File而言,其封裝的并不是一個(gè)真正存在的文件,僅僅是一個(gè)路徑名而已。它可以是存在的,也可以是不存在的。將來是要通過具體的操作把這個(gè)路徑的內(nèi)容轉(zhuǎn)換為具體存在的。
File類的構(gòu)造方法
File(String pathname) //通過將給定的路徑名字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建新的 File實(shí)例 File(String parent, String child) //從父路徑名字符串和子路徑名字符串創(chuàng)建新的 File實(shí)例 File(File parent, String child) //從父抽象路徑名和子路徑名字符串創(chuàng)建新的 File實(shí)例
創(chuàng)建功能
public boolean createNewFile() 當(dāng)具有該名稱的文件不存在時(shí),創(chuàng)建一個(gè)由該抽象路徑名命名的新空 文件 public boolean mkdir() 創(chuàng)建由此抽象路徑名命名的目錄 public boolean mkdirs() 創(chuàng)建由此抽象路徑名命名的目錄,包括任何必需但不存在的父目錄
判斷
public boolean isDirectory() 測(cè)試此抽象路徑名表示的File是否為目錄 public boolean isFile() 測(cè)試此抽象路徑名表示的File是否為文件 public boolean exists() 測(cè)試此抽象路徑名表示的File是否存在
獲取
public String getAbsolutePath() 返回此抽象路徑名的絕對(duì)路徑名字符串 public String getPath() 將此抽象路徑名轉(zhuǎn)換為路徑名字符串 public String getName() 返回由此抽象路徑名表示的文件或目錄的名稱 public String[] list() 返回此抽象路徑名表示的目錄中的文件和目錄的名稱字符串?dāng)?shù)組 public File[] listFiles() 返回此抽象路徑名表示的目錄中的文件和目錄的File對(duì)象數(shù)組
刪除
public boolean delete() 刪除由此抽象路徑名表示的文件或目錄
相對(duì)路徑與絕對(duì)路徑
- 絕對(duì)路徑:完整的路徑名,不需要任何其他信息就可以定位它所表示的文件。例如:E:\cast\java.txt
- 相對(duì)路徑:必須使用取自其他路徑名的信息進(jìn)行解釋。例如:myFile\java.txt
IO流
IO流介紹
IO:輸入/輸出(Input/Output)流:是一種抽象概念,是對(duì)數(shù)據(jù)傳輸?shù)目偡Q。也就是說數(shù)據(jù)在設(shè)備間的傳輸稱為流,流的本質(zhì)是數(shù)據(jù)傳輸IO流就是用來處理設(shè)備間數(shù)據(jù)傳輸問題的。常見的應(yīng)用:文件復(fù)制;文件上傳;文件下載
IO流的分類
- 按照數(shù)據(jù)的流向
輸入流:讀數(shù)據(jù)
輸出流:寫數(shù)據(jù)
- 按照數(shù)據(jù)類型來分
字節(jié)流
字節(jié)輸入流
字節(jié)輸出流
字符流
字符輸入流
字符輸出流
- IO流的使用場(chǎng)景
如果操作的是純文本文件,優(yōu)先使用字符流如果操作的是圖片、視頻、音頻等二進(jìn)制文件。優(yōu)先使用字節(jié)流如果不確定文件類型,優(yōu)先使用字節(jié)流。字節(jié)流是萬能的流
字節(jié)流寫數(shù)據(jù)
void write(int b) 將指定的字節(jié)寫入此文件輸出流 一次寫一個(gè)字節(jié)數(shù)據(jù) void write(byte[] b) 將 b.length字節(jié)從指定的字節(jié)數(shù)組寫入此文件輸出流 一次寫一個(gè)字節(jié)數(shù)組數(shù)據(jù) void write(byte[] b, int o?, int len) 將 len字節(jié)從指定的字節(jié)數(shù)組開始,從偏移量o?開始寫入此文件輸出流 一次寫一個(gè)字節(jié)數(shù)組的部分?jǐn)?shù)據(jù)
小問題
如何實(shí)現(xiàn)換行?
windows中輸入\r\n
inux:\n
mac:\r
如何實(shí)現(xiàn)追加寫入
public FileOutputStream(String name,boolean append) 創(chuàng)建文件輸出流以指定的名稱寫入文件。如果第二個(gè)參數(shù)為true ,則字節(jié)將寫入文件的末尾而不是開頭
關(guān)于異常處理
可以使用try{ finally{ }強(qiáng)制執(zhí)行清除文件對(duì)象操作
try{
可能出現(xiàn)異常的代碼;
}catch(異常類名 變量名){
異常的處理代碼;
}finally{
執(zhí)行所有清除操作;
}
字節(jié)輸入流
FileInputStream(String name):通過打開與實(shí)際文件的連接來創(chuàng)建一個(gè)FileInputStream ,該文件由文
件系統(tǒng)中的路徑名name命名字節(jié)輸入流讀取數(shù)據(jù)的步驟
創(chuàng)建字節(jié)輸入流對(duì)象調(diào)用字節(jié)輸入流對(duì)象的讀數(shù)據(jù)方法
釋放資源
案例
總結(jié)
到此這篇關(guān)于java文件讀寫操作的文章就介紹到這了,更多相關(guān)java文件讀寫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Servlet+JDBC實(shí)現(xiàn)登陸功能的小例子(帶驗(yàn)證碼)
這篇文章主要介紹了Servlet+JDBC實(shí)現(xiàn)登陸功能的小例子(帶驗(yàn)證碼),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Java設(shè)計(jì)模式之原型設(shè)計(jì)示例詳解
這篇文章主要為大家詳細(xì)介紹了Java的原型設(shè)計(jì)模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03spring boot里增加表單驗(yàn)證hibernate-validator并在freemarker模板里顯示錯(cuò)誤信息(推
這篇文章主要介紹了spring boot里增加表單驗(yàn)證hibernate-validator并在freemarker模板里顯示錯(cuò)誤信息的相關(guān)資料,需要的朋友可以參考下2018-01-01Java基于Swing實(shí)現(xiàn)的打獵射擊游戲代碼
這篇文章主要介紹了Java基于Swing實(shí)現(xiàn)的打獵射擊游戲代碼,包含完整的游戲事件處理與邏輯流程控制,具有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11解決Error:(5,55)java:程序包org.springframework.cloud.netflix.eure
這篇文章主要介紹了解決Error:(5,55)java:程序包org.springframework.cloud.netflix.eureka.server不存在問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11解決Eclipse打開.java文件異常,提示用系統(tǒng)工具打開的問題
這篇文章主要介紹了解決Eclipse打開.java文件異常,提示用系統(tǒng)工具打開的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01Spring Boot與Kotlin 整合全文搜索引擎Elasticsearch的示例代碼
本篇文章主要介紹了Spring Boot與Kotlin 整合全文搜索引擎Elasticsearch的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01