天天看点

轻松掌握Java文件读写技巧,快速处理数据!

作者:树言树语Tree

当涉及到文件读写操作,Java提供了许多强大而灵活的API,可以帮助你轻松地处理文件。在本文中,我将围绕文件读写操作进行详细的讲解,包括如何读取和写入文本文件,以及如何处理二进制文件。

文件读取

在Java中,读取文本文件通常有两种常见的方法:

方法一:使用 BufferedReader 和 FileReader

这是一种逐行读取文本文件的方法,使用BufferedReader包装FileReader以提高读取性能。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileReadingExample {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
           

方法二:使用 Scanner

Scanner类也可以用来读取文件,它提供了更简洁的方式来解析文件内容。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileReadingExample {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(new File("file.txt"));
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println(line);
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
           

文件写入

现在我们来看看如何将数据写入文件。同样有两种常见的方法:

方法一:使用 BufferedWriter 和 FileWriter

这是逐行写入数据的方法,使用BufferedWriter包装FileWriter以提高写入性能。

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class FileWritingExample {
    public static void main(String[] args) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
            writer.write("Hello, World!");
            writer.newLine(); // 换行
            writer.write("This is a file writing example.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
           

方法二:使用 PrintWriter

PrintWriter类提供了更方便的方式来写入数据到文件。

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class FileWritingExample {
    public static void main(String[] args) {
        try (PrintWriter writer = new PrintWriter(new FileWriter("output.txt"))) {
            writer.println("Hello, World!");
            writer.println("This is a file writing example.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
           

二进制文件读写

除了文本文件,有时候你可能需要处理二进制文件,比如图片、音频、视频等。对于二进制文件的读写,你可以使用InputStream和OutputStream的子类来实现。

读取二进制文件

import java.io.FileInputStream;
import java.io.IOException;

public class BinaryFileReadingExample {
    public static void main(String[] args) {
        try (FileInputStream inputStream = new FileInputStream("binaryfile.bin")) {
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                // 处理读取的数据
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
           

写入二进制文件

import java.io.FileOutputStream;
import java.io.IOException;

public class BinaryFileWritingExample {
    public static void main(String[] args) {
        try (FileOutputStream outputStream = new FileOutputStream("output.bin")) {
            byte[] data = {0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x21};
            outputStream.write(data);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
           

请注意,处理二进制文件需要对字节数据进行适当的解析和处理。

无论是处理文本文件还是二进制文件,务必在读写完成后关闭相关的资源,这里我们使用了try-with-resources语句,可以确保资源的自动关闭。

这里讲解的是最基本的文件读写操作,实际上,Java提供了更多高级的API,如NIO(New I/O)等,可以在处理大量数据时提供更高的性能和效率。但掌握了这些基本的读写操作,你已经可以进行很多实际的文件处理任务了。希望这个讲解对你有所帮助!

每天坚持学习一点点,不求有回报,只愿可以丰富自己!!!

继续阅读