Java中使用新NIO.2读写文件

在本文中,我们将学习如何使用 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 写入文件的程序:

// Java Program to Write Files using the New I/O (NIO.2) API
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
            List<String> lines = new ArrayList<>();
            lines.add(
"Welcome");
            lines.add(
"to");
            lines.add(
"GeeksForGeeks");

           
// Write the lines to the file
            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读取现有数据该方法可以读取文件中的所有数据。此方法采用一个参数,即文件路径。

// Java Program to Read Files using the New I/O (NIO.2) API 
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
        Path filePath = Paths.get(
"example.txt");

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

           
// Print each line
            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 循环,它会打印文件中的每个字符串。