Java 中的文件處理:如何處理 Java 文件?

已發表: 2021-03-12

Java 是一種廣泛流行的編程語言。 除了強大架構和組件之外,其成功和流行的最重要原因之一是它支持眾多功能。 Java 中的文件處理就是這樣一種功能,它允許我們處理文件。 今天,我們將學習使用Java 中的文件概念可以執行的各種操作

目錄

什麼是 Java 文件處理?

如前所述, Java 中的文件處理允許您處理文件。 它是在 Java.io 包的 File 類中定義的 Java 功能。 Java.io 包中的 io 代表輸入和輸出。 您將在 Java.io 包中找到執行任何輸入或輸出操作所需的所有類。

您可以通過創建對象並提供文件或目錄名稱來訪問和使用此 File 類來執行各種功能。 創建對象和使用 File 類的語法是:

導入java.io.File;

文件 obj = new File(“name.txt”);

如上述語法所示,您首先需要從 Java.io 包中導入 File 類。 導入後,您需要做的就是創建一個對象並指定要使用的文件或目錄名稱。 要在 Windows 操作系統中提及目錄名稱,您必須使用“\\”。 例如,您必須使用“ C:\\Users\\MyFolder\\MySubFolder ”而不是“ C:\Users|MyFolder|MySubFolder ”。 但是,對於其他操作系統,例如 Linux,您可以照常使用單個 \。

Java中文件概念的所有I/O(輸入/輸出)操作都是在流的幫助下完成的。 讓我們深入研究什麼是流,以及這些操作是如何用它執行的?

Java中流的概念是什麼?

簡單來說,流是一系列數據。 有兩種類型的流,它們是:

  • 字節流:這種類型的流適用於字節數據。 當您以字節(8 位)格式讀取或寫入數據時,將使用字節流執行 I/O 操作。
  • 字符流:這種類型的流適用於字符序列。 當您使用字符讀取或寫入數據時,將使用字符流執行 I/O 操作。

結帳:GitHub 上的頂級 Java 項目

Java中有哪些不同的文件處理方法?

File 類提供了各種預定義的方法來幫助您通過調用它們來執行所有 I/O 操作。 下表顯示了所有方法,以及它們執行的操作。

方法類型描述
可以閱讀() 布爾值它檢查您是否可以讀取文件。
可以寫() 布爾值它測試您是否可以寫入文件。
創建新文件() 布爾值這將創建一個新的空文件。
刪除() 布爾值此方法將刪除指定的文件。
存在() 布爾值它檢查提到的文件是否存在。
獲取名稱() 細繩返回文件名。
獲取絕對路徑() 細繩返回文件的絕對路徑名。
長度() 它以字節為單位返回文件的大小。
列表() 細繩[] 返回目錄中存在的文件名列表。
mkdir() 布爾值此方法將創建一個新目錄。

如何執行不同的 Java 文件處理操作?

由於您了解 File 類中可用的不同方法,是時候使用它們來執行各種Java 文件處理操作了。 首先,您可以對文件完成以下操作。

  • 創建一個新文件。
  • 獲取文件信息。
  • 寫入文件。
  • 從文件中讀取。
  • 刪除一個文件。

我們將通過一個示例來執行這些操作中的每一個。 在第一個示例中,我們將創建一個新文件,然後使用同一文件執行其他任務。

創建文件

您可以使用 createNewFile() 方法創建文件。 執行該方法將返回真或假。 如果文件創建成功,它將返回一個 true。 另一方面,如果文件已經存在,它將返回 false。

始終建議在 try 和 catch 塊中使用此方法,因為如果文件未成功創建,它可能會引發異常。 您可以在我們的 Java 異常處理指南中了解更多信息 請參閱下面的示例,該示例使用 createNewFile() 方法創建一個新的空文件。

導入java.io.File; // 導入文件類

導入 java.io.IOException; // 導入 IOException 類來處理錯誤

公共類 CreateFileExample{

公共靜態無效主要(字符串[]參數){

嘗試{

文件 obj = 新文件(“newFile.txt”);

if(obj.createNewFile()){ // 如果返回true,即創建成功

System.out.println(“文件創建成功:” + obj.getName());

}

else{ // 如果返回false,即文件已經存在

System.out.println(“文件已存在”);

}

}

catch (IOException e){ // 如果發生任何錯誤,捕獲異常

System.out.println(“發生錯誤”);

e.printStackTrace();

}

}

}

輸出:

文件創建成功:newFile.txt

獲取文件信息

您可以使用 File 類中定義的各種方法來訪問文件的不同信息,例如名稱、長度、絕對路徑、可讀性等。 以下示例中使用了一些獲取文件信息的方法。

導入java.io.File;

公共類 AccessInfoExample{

公共靜態無效主要(字符串[]參數){

// 創建一個對象

文件 obj = 新文件(“newFile.txt”);

如果(obj.exists()){

// 獲取文件名

System.out.println(“文件名是:” + obj.getName());

// 獲取絕對路徑

System.out.println(“文件的絕對路徑為:” + obj.getAbsolutePath());

// 檢查文件是否可寫

System.out.println(“文件可寫嗎?” + obj.canWrite());

// 檢查文件是否可讀

System.out.println(“文件可讀嗎?” + obj.canRead());

// 以字節為單位獲取長度

// 它將顯示 0,因為我們還沒有在文件中寫入任何內容

System.out.println(“文件大小以字節為單位:” + obj.length());

}

別的{

System.out.println(“文件名” + obj.getName() + “不存在”);

}

}

}

輸出:

文件名是:newFile.txt

文件的絕對路徑為:D:JavaProgramming:newFile.txt

文件是可寫的嗎? 真的

文件可讀嗎? 真的

文件大小(以字節為單位):0

上述示例的輸出可能因文件名、保存路徑和大小而異。 如果指定的文件不存在,則會顯示“名為 newFile.txt 的文件不存在”。

寫入文件

要寫入字節數據,請使用 FileOutputStream 類,對於字符,請使用 FileWriter 類。 在下面的示例中,我們將使用 FileWriter 類及其預定義的 write() 方法在“newFile”中寫入一些內容。

在開始示例之前需要注意的一件事是,每當您打開一個文件進行寫入時,您都需要使用 close() 方法將其關閉。 關閉文件將允許您檢索 Java 編譯器分配的資源以寫入文件。 讓我們看一下如何在示例中執行此操作。

導入 java.io.FileWriter; // 導入 FileWriter 類

導入 java.io.IOException; // 導入 IOException 類來處理錯誤

公共類 WriteExample{

公共靜態無效主要(字符串[]參數){

嘗試{

FileWriter obj = new FileWriter(“newFile.txt”);

obj.write(“這將被寫入 newFile.txt 文件中!”);

obj.close(); // 關閉文件

System.out.println(“我們已經成功寫入文件並關閉它。”);

}

捕捉(IOException e){

System.out.println(“發生錯誤。”);

e.printStackTrace();

}

}

}

輸出:

我們已成功寫入文件並關閉它。

從文件中讀取

您可以使用 FileInputStream 讀取字節數據,使用 FileReader 從文件中讀取字符數據。 或者,您也可以使用 Scanner 類來讀取文件。 由於我們已經使用了 FileWriter 來寫入數據,所以在這個例子中我們將使用 Scanner 類來讀取數據。 與寫入時一樣,在讀取時也需要關閉打開的文件。

導入java.io.File; // 導入文件類

導入 java.io.FileNotFoundException; // 導入處理錯誤的類

導入 java.util.Scanner; // 導入 Scanner 類以讀取文本文件

公共類 ReadExample{

公共靜態無效主要(字符串[]參數){

嘗試{

文件 obj = 新文件(“newFile.txt”);

掃描儀 robj = 新的掃描儀(obj);

而(robj.hasNextLine()){

字符串數據信息 = robj.nextLine();

System.out.println(dataInfo);

}

robj.close();

}

捕捉(FileNotFoundException e){

System.out.println(“發生錯誤。”);

e.printStackTrace();

}

}

}

輸出:

這將寫入 newFile.txt 文件中!

刪除文件

您可以使用 File 類的 delete() 方法刪除文件。 如果文件夾為空,您也可以刪除整個文件夾。 讓我們在下面的示例中刪除我們的“newFile.txt”文件。

導入java.io.File; // 導入文件類

公共類 DeleteExample{

公共靜態無效主要(字符串[]參數){

文件 obj = 新文件(“newFile.txt”);

如果(obj.delete()){

System.out.println("文件名為" + obj.getName() + "刪除成功。");

}

別的{

System.out.println(“文件未刪除。”);

}

}

}

輸出:

成功刪除名為 newFile.txt 的文件。

另請閱讀: Java 項目理念和主題

從世界頂級大學在線學習軟件課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

在這篇文章中,您了解了有關Java 文件處理的所有知識 Java 提供了各種此類功能,這使其成為全球最流行的編程語言之一。 因此, Java 開發人員在印度的薪水很高也就不足為奇了如果你想成為一名 Java 開發人員並獲得高薪,upGrad 的免費 Java 在線課程很適合你。

該課程是 upStart 計劃的一部分,這是一項無價的技能提升計劃。 完成免費課程並獲得認證後,您可以進一步選擇 upGrad 的全棧開發 PG 認證 您可以通過項目獲得 400 多個小時的學習材料和實踐經驗。 參加課程並在 Java 編程概念的軟件開發領域取得優異成績。

如何在 Java 中讀取和寫入文件?

InputStream 類的對象表示可以從中讀取字節的數據源,OutputStream 類的對象表示可以寫入字節的目的地。 這些對象與 java.io 包的各種類一起使用,以讀取和寫入文件,從套接字讀取和寫入數據,以及執行各種其他輸入和輸出操作。

Java中有哪些不同的文件處理庫?

java中提供了幾個文件處理庫。 每個都有自己的目的和用途。 java.io 包定義了基本的文件處理類。 所以我們可以說它是最通用的文件處理庫。 java.nio 包,也稱為 New Input/Output 包,主要用於高吞吐量、低延遲和低帶寬的數據傳輸。 它安全、輕量且獨立於平台。 該包通過添加基於通道的 API 擴展了 java.io 包。 此外,java.nio.file 包用於文件系統的編程接口。 文件系統是數據的分層組織,與存儲信息的物理介質無關。 文件系統支持應用程序之間的文件共享和進程間通信。 此外,java.nio.file.attribute 包用於文件系統屬性的類和接口。

Java中文件處理的應用有哪些?

文件處理是眾多有趣且有價值的 Java 編程主題之一。 對於 Java 程序員來說,了解如何在 Java 中創建、打開、讀取、寫入、追加和刪除文件至關重要。 這有助於程序員操作文件中的數據。 可以對文件進行很多操作,例如找出文件的長度、讀取文件的內容、確定文件是否可寫等等。