Java中使用新NIO.2讀寫檔案

banq發表於2024-03-20

在本文中,我們將學習如何使用 Java 中的新 I/O (NIO) API 讀寫檔案。首先,我們需要從Java 中的NIO包匯入檔案。這個NIO.2是從Java 7版本開始引入的。與傳統的 Java 包java.io相比,這提供了一種更有效的處理輸入和輸出操作的方法。現在,透過使用java.nio包,我們可以寫入和讀取檔案。

下面我們提供了兩個寫入檔案和讀取檔案的示例。

使用 NIO 寫入檔案
為了將資訊寫入檔案,我們有一個類Files,它用於在 NIO 中處理檔案操作。該類在java.nio中可用。然後獲取資訊並將其寫入示例檔案。這裡我們採用了example.txt檔案來進行寫入和讀取操作。

使用新 I/O (NIO.2) API 寫入檔案的 Java 程式
以下是使用 New I/O (Nio.2) API 寫入檔案的程式:

<font>// Java Program to Write Files using the New I/O (NIO.2) API<i>
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

public class FileWriteExample {
    public static void main(String[] args) {
        Path filePath = Paths.get(
"example.txt");

        try {
           
// Create a list of strings to be written to the file<i>
            List<String> lines = new ArrayList<>();
            lines.add(
"Welcome");
            lines.add(
"to");
            lines.add(
"GeeksForGeeks");

           
// Write the lines to the file<i>
            Files.write(filePath, lines);

            System.out.println(
"File written successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

程式說明:

  • 首先,我們建立了一個 Java 類。
  • 之後,我們使用java.nio包中的Path類獲取目標檔案的路徑資訊。
  • 這裡我們的目標檔案是example.txt。
  • 接下來在 try catch 塊中,我們將一些 String 值作為列表,因為 write 方法僅接受位元組陣列
  • 然後使用Files.write()執行寫操作。

使用NIO讀取檔案
在此示例中,我們可以使用Files.readAllLines() 從example.txt讀取現有資料該方法可以讀取檔案中的所有資料。此方法採用一個引數,即檔案路徑。

<font>// Java Program to Read Files using the New I/O (NIO.2) API <i>
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class File1 {
    public static void main(String[] args) {
       
// Define the path to the file<i>
        Path filePath = Paths.get(
"example.txt");

        try {
           
// Read all lines from the file into a list<i>
            List<String> lines = Files.readAllLines(filePath);

           
// Print each line<i>
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

程式說明:

  • 首先,我們建立了一個 Java 類。
  • 之後,我們使用java.nio包中的Path類獲取目標檔案的路徑資訊。
  • 這是我們的目標檔案 example.txt
  • 接下來在 try catch 塊中,我們使用 Files.readAllLines(filePath) 從檔案中讀取所有資料。
  • 之後,透過使用 for 迴圈,它會列印檔案中的每個字串。

 

相關文章