更新時(shí)間:2022-06-01 10:54:58 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1374次
動(dòng)力節(jié)點(diǎn)小編為大家總結(jié)了Java文件操作的方法。在 Java 中,文件是一種抽象數(shù)據(jù)類型。用于存儲(chǔ)相關(guān)信息的命名位置稱為File。有幾個(gè)文件操作,例如創(chuàng)建新文件、獲取有關(guān)文件的信息、寫入文件、讀取文件和刪除文件。
在了解 File 操作之前,我們需要了解Stream和File方法。如果你對(duì)它們都有了解,你可以跳過它。
一系列數(shù)據(jù)稱為流。在Java中,流分為字節(jié)流和字符流兩種。
字節(jié)流主要涉及字節(jié)數(shù)據(jù)。具有字節(jié)流的文件處理過程是提供輸入并利用字節(jié)數(shù)據(jù)執(zhí)行的過程。
字符流主要涉及字符數(shù)據(jù)。具有字符流的文件處理過程是用字符數(shù)據(jù)提供和執(zhí)行輸入的過程。
要了解有關(guān)流的更多信息,請(qǐng)單擊此處。
我們可以對(duì)文件進(jìn)行如下操作:
創(chuàng)建文件
獲取文件信息
寫入文件
從文件中讀取
刪除文件
執(zhí)行創(chuàng)建文件操作以創(chuàng)建新文件。我們使用文件的createNewFile()方法。createNewFile()方法在成功創(chuàng)建新文件時(shí)返回 true,在文件已存在時(shí)返回 false。
讓我們以一個(gè)創(chuàng)建文件的例子來了解我們?nèi)绾问褂胏reateNewFile()方法來執(zhí)行這個(gè)操作。
創(chuàng)建文件.java
// 導(dǎo)入文件類
導(dǎo)入 java.io.File;
// 導(dǎo)入 IOException 類來處理錯(cuò)誤
導(dǎo)入 java.io.IOException;
類 創(chuàng)建文件 {
公共靜態(tài)無效 主要(字符串參數(shù)[]){
試試 {
// 創(chuàng)建文件對(duì)象
文件 f0 = new File( "D:FileOperationExample.txt" );
如果 (f0.createNewFile()){
System.out.println( "文件" + f0.getName() + "創(chuàng)建成功。" );
} 其他 {
System.out.println( "目錄中已經(jīng)存在文件。" );
}
} 捕捉 (IOException 異常){
System.out.println( "出現(xiàn)意外錯(cuò)誤。" );
異常.printStackTrace();
}
}
}
輸出:
解釋:
在上面的代碼中,我們分別導(dǎo)入了 File 和 IOException 類來執(zhí)行文件操作和處理錯(cuò)誤。我們創(chuàng)建 File 類的f0對(duì)象并指定我們要?jiǎng)?chuàng)建文件的目錄的位置。在 try 塊中,我們通過f0對(duì)象調(diào)用createNewFile()方法在指定位置創(chuàng)建一個(gè)新文件。如果該方法返回 false,它將跳轉(zhuǎn)到 else 部分。如果有任何錯(cuò)誤,它將在 catch 塊中處理。
執(zhí)行該操作以獲取文件信息。我們使用幾種方法來獲取有關(guān)文件的信息,例如名稱、絕對(duì)路徑、可讀性、可寫性和長(zhǎng)度。
下面我們通過一個(gè)例子來了解如何使用文件方法來獲取文件的信息。
文件信息.java
// 導(dǎo)入文件類
導(dǎo)入 java.io.File;
類 文件信息 {
公共靜態(tài)無效 主要(字符串[]參數(shù)){
// 創(chuàng)建文件對(duì)象
文件 f0 = new File( "D:FileOperationExample.txt" );
如果 (f0.exists()){
// 獲取文件名
System.out.println( "文件名是:" + f0.getName());
// 獲取文件路徑
System.out.println( "文件的絕對(duì)路徑為:" + f0.getAbsolutePath());
// 檢查文件是否可寫
System.out.println( "文件是否可寫:" + f0.canWrite());
// 檢查文件是否可讀
System.out.println( "文件是否可讀" + f0.canRead());
// 獲取文件的長(zhǎng)度(以字節(jié)為單位)
System.out.println( "文件大小為:" + f0.length());
} 其他 {
System.out.println( "該文件不存在。" );
}
}
}
輸出:
描述:
在上面的代碼中,我們導(dǎo)入了java.io.File包并創(chuàng)建了一個(gè)類FileInfo。在 main 方法中,我們創(chuàng)建了我們?cè)谇懊娴氖纠袆?chuàng)建的文本文件的對(duì)象。我們使用條件語句檢查文件是否存在,如果存在,我們將獲得有關(guān)該文件的以下信息:
我們使用getName() 獲取文件名
我們使用文件的getAbsolutePath()方法獲取文件的絕對(duì)路徑。
我們檢查是否可以使用canWrite()將數(shù)據(jù)寫入文件
我們檢查是否可以使用canRead()讀取文件的數(shù)據(jù)
我們使用length()獲取文件的長(zhǎng)度
如果文件不存在,我們會(huì)顯示一條自定義消息。
我們可以對(duì)文件執(zhí)行的下一個(gè)操作是“寫入文件”。為了將數(shù)據(jù)寫入文件,我們將一起使用FileWriter類及其write()方法。我們需要使用close()方法關(guān)閉流以檢索分配的資源。
讓我們舉個(gè)例子來了解我們?nèi)绾螌?shù)據(jù)寫入文件。
WriteToFile.java
// 導(dǎo)入 FileWriter 類
導(dǎo)入 java.io.FileWriter;
// 導(dǎo)入 IOException 類來處理錯(cuò)誤
導(dǎo)入 java.io.IOException;
類 WriteToFile {
公共靜態(tài)無效 主要(字符串[]參數(shù)){
試試 {
FileWriter fwrite = new FileWriter( "D:FileOperationExample.txt" );
// 將內(nèi)容寫入 FileOperationExample.txt 文件
fwrite.write( "用于存儲(chǔ)相關(guān)信息的命名位置稱為文件。" );
// 關(guān)閉流
fwrite.close();
System.out.println( "內(nèi)容成功寫入文件。" );
} 捕捉 (IOException e){
System.out.println( "發(fā)生意外錯(cuò)誤" );
e.printStackTrace();
}
}
}
輸出:
解釋:
在上面的代碼中,我們導(dǎo)入了java.io.FileWriter和java.io.IOException類。我們創(chuàng)建了一個(gè) WriteToFile 類,在它的 main 方法中,我們使用了try-catch塊。在 try 部分,我們創(chuàng)建 FileWriter 類的一個(gè)實(shí)例,即fwrite。我們調(diào)用 FileWriter 類的write方法并將內(nèi)容傳遞給我們要編寫的函數(shù)。之后,我們調(diào)用FileWriter 類的close()方法來關(guān)閉文件流。在寫入內(nèi)容并關(guān)閉流之后,我們打印一條自定義消息。
如果我們?cè)?try 部分遇到任何錯(cuò)誤,它會(huì)跳轉(zhuǎn)到 catch 塊。在 catch 塊中,我們處理IOException并打印自定義消息。
我們可以對(duì)文件執(zhí)行的下一個(gè)操作是“從文件中讀取”。為了將數(shù)據(jù)寫入文件,我們將使用Scanner類。在這里,我們需要使用close()方法關(guān)閉流。我們將創(chuàng)建一個(gè)Scanner 類的實(shí)例并使用hasNextLine()方法 nextLine()方法從文件中獲取數(shù)據(jù)。
讓我們舉個(gè)例子來了解我們?nèi)绾螐奈募凶x取數(shù)據(jù)。
ReadFromFile.java
// 導(dǎo)入文件類
導(dǎo)入 java.io.File;
// 導(dǎo)入 FileNotFoundException 類來處理錯(cuò)誤
導(dǎo)入 java.io.FileNotFoundException;
// 導(dǎo)入 Scanner 類以讀取文本文件
導(dǎo)入 java.util.Scanner;
類 ReadFromFile {
公共靜態(tài)無效 主要(字符串[]參數(shù)){
試試 {
// 創(chuàng)建文件的f1對(duì)象來讀取數(shù)據(jù)
文件 f1 = new File( "D:FileOperationExample.txt" );
掃描儀數(shù)據(jù)讀取器 = 新 掃描儀(f1);
而 (dataReader.hasNextLine()){
字符串文件數(shù)據(jù) = dataReader.nextLine();
System.out.println(fileData);
}
dataReader.close();
} 捕捉 (FileNotFoundException 異常){
System.out.println( "發(fā)生意外錯(cuò)誤!" );
異常.printStackTrace();
}
}
}
輸出:
解釋:
在上面的代碼中,我們導(dǎo)入了“java.util.Scannner”、“java.io.File”和“java.io.IOException”類。我們創(chuàng)建了一個(gè)ReadFromFile類,在它的 main 方法中,我們使用了try-catch 塊。在 try 部分,我們創(chuàng)建了Scanner和File類的實(shí)例。我們將File類對(duì)象傳遞給Scanner類對(duì)象,然后使用“While”迭代掃描器類對(duì)象循環(huán)并打印文件的每一行。我們還需要關(guān)閉掃描器類對(duì)象,所以我們使用 close() 函數(shù)。如果我們?cè)?try 部分遇到任何錯(cuò)誤,它會(huì)跳轉(zhuǎn)到 catch 塊。在 catch 塊中,我們處理 IOException 并打印自定義消息。
我們可以對(duì)文件執(zhí)行的下一個(gè)操作是“刪除文件”。為了刪除文件,我們將使用文件的delete()方法。我們不需要使用close()方法關(guān)閉流,因?yàn)橐獎(jiǎng)h除文件,我們既不使用 FileWriter 類,也不使用 Scanner 類。
讓我們舉個(gè)例子來了解我們?nèi)绾螌?shù)據(jù)寫入文件。
刪除文件.java
// 導(dǎo)入文件類
導(dǎo)入 java.io.File;
類 刪除文件 {
公共靜態(tài)無效 主要(字符串[]參數(shù)){
文件 f0 = new File( "D:FileOperationExample.txt" );
如果 (f0.delete()){
System.out.println(f0.getName()+ "文件刪除成功。" );
} 其他 {
System.out.println( "刪除文件時(shí)發(fā)現(xiàn)意外錯(cuò)誤。" );
}
}
}
輸出:
解釋:
在上面的代碼中,我們導(dǎo)入File類并創(chuàng)建一個(gè)類DeleteFile。在類的 main() 方法中,我們創(chuàng)建要?jiǎng)h除的文件的f0對(duì)象。在if語句中,我們使用 f0 對(duì)象調(diào)用文件的delete()方法。如果 delete() 方法返回 true,我們將打印成功的自定義消息。否則,它會(huì)跳轉(zhuǎn)到我們打印不成功的自定義消息的 else 部分。
上述所有操作都用于以編程方式讀取、寫入、刪除和創(chuàng)建文件。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743