Java函数实现文件读取和写入操作的技巧
发布时间:2023-10-12 10:48:18
在Java中,可以使用多种方式实现文件读取和写入操作。下面列举了一些常用的技巧和方法。
文件读取:
1. 使用BufferedReader类读取文本文件:BufferedReader类提供了readLine()方法,可以按行读取文件内容。
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
2. 使用Scanner类读取文件:Scanner类可以方便地处理文件中的各种类型的数据。
try (Scanner scanner = new Scanner(new File("file.txt"))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
3. 使用Files类读取文件:Java 7引入了Files类,提供了更简洁的API来读取文件内容。
try {
List<String> lines = Files.readAllLines(Paths.get("file.txt"));
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
文件写入:
1. 使用BufferedWriter类写入文本文件:BufferedWriter类提供了write()和newLine()方法,可以方便地写入文本文件。
try (BufferedWriter bw = new BufferedWriter(new FileWriter("file.txt"))) {
bw.write("Hello");
bw.newLine();
bw.write("World");
} catch (IOException e) {
e.printStackTrace();
}
2. 使用PrintWriter类写入文件:PrintWriter类提供了print()和println()方法,可以写入文本文件。
try (PrintWriter pw = new PrintWriter("file.txt")) {
pw.println("Hello");
pw.println("World");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
3. 使用Files类写入文件:Files类也可以用来写入文件。
try {
List<String> lines = Arrays.asList("Hello", "World");
Files.write(Paths.get("file.txt"), lines);
} catch (IOException e) {
e.printStackTrace();
}
同时读取和写入文件:
1. 使用RandomAccessFile类:RandomAccessFile类可以同时读写文件的内容。
try (RandomAccessFile raf = new RandomAccessFile("file.txt", "rw")) {
String line;
while ((line = raf.readLine()) != null) {
System.out.println(line);
}
raf.writeBytes("Hello");
} catch (IOException e) {
e.printStackTrace();
}
2. 使用FileChannel类:FileChannel类提供了read()和write()方法,可以读写文件的内容。
try (RandomAccessFile file = new RandomAccessFile("file.txt", "rw")) {
FileChannel channel = file.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
// 读取文件
int bytesRead = channel.read(buffer);
while (bytesRead != -1) {
buffer.flip();
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get());
}
buffer.clear();
bytesRead = channel.read(buffer);
}
// 写入文件
buffer.put("Hello".getBytes());
buffer.flip();
channel.write(buffer);
} catch (IOException e) {
e.printStackTrace();
}
以上是常见的文件读取和写入操作的实现技巧和方法。根据实际需求和具体情况,选择合适的方式来读取和写入文件,并根据需要进行相应的异常处理。
