在本文中,我们将学习如何使用 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 循环,它会打印文件中的每个字符串。