欢迎访问宙启技术站
智能推送

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();
}

以上是常见的文件读取和写入操作的实现技巧和方法。根据实际需求和具体情况,选择合适的方式来读取和写入文件,并根据需要进行相应的异常处理。