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

使用Java的IO函数读写文件的详细教程

发布时间:2023-06-21 02:49:33

Java提供了完善的IO函数,可以方便地读写文件。

在Java中,文件读写主要涉及到两个包:java.io和java.nio。其中,java.io是之前使用较为广泛的IO处理方式,而java.nio则是Java 1.4之后引入的新的IO处理方式,具有更高的性能。

本文将主要介绍java.io包的文件读写操作。

1. 读取文件

使用Java读取文件需要用到FileInputStream类和BufferedInputStream类。

FileInputStream类会打开指定的文件,将文件的内容读取到缓冲器中,并存储到指定的数据结构中。读取文件的步骤如下:

- 创建一个FileInputStream对象并将要读取的文件路径传递给该对象。

- 创建一个byte数组用于存储文件内容。

- 使用FileInputStream的read方法读取文件内容并将其存储在byte数组中。

- 关闭FileInputStream对象。

代码示例:

public static void readFile(String filePath) {
    try {
        FileInputStream fis = new FileInputStream(filePath);  //      步
        byte[] data = new byte[1024];  //第二步
        fis.read(data);  //第三步
        fis.close();  //第四步
        System.out.println(new String(data));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

但是上述代码仅能读取文件前1024个字节的内容,对于大于1024的文件应该如何读取呢?

这时候就需要使用BufferedInputStream类。BufferedInputStream类会从文件中读取数据块并将其存储在内存缓冲区中,直到缓冲区满或读取完所有数据块为止。

代码示例:

public static void readFile(String filePath) {
    try {
        FileInputStream fis = new FileInputStream(filePath);
        BufferedInputStream bis = new BufferedInputStream(fis);
        byte[] data = new byte[1024];
        int len;
        while ((len = bis.read(data)) != -1) {
            System.out.println(new String(data, 0, len));
        }
        bis.close();
        fis.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

2. 写入文件

使用Java写入文件需要用到FileOutputStream类和BufferedOutputStream类。

FileOutputStream类会打开指定的文件并将写入的数据存储在缓冲区中,然后将缓冲区中的数据写入到文件中。写入文件的步骤如下:

- 创建一个FileOutputStream对象并将要写入的文件路径传递给该对象。

- 创建一个byte数组用于存储写入的数据。

- 使用FileOutputStream的write方法将要写入的数据存储在缓冲区中。

- 关闭FileOutputStream对象。

代码示例:

public static void writeFile(String filePath, String content) {
    try {
        FileOutputStream fos = new FileOutputStream(filePath);  //      步
        byte[] data = content.getBytes();  //第二步
        fos.write(data);  //第三步
        fos.close();  //第四步
    } catch (IOException e) {
        e.printStackTrace();
    }
}

如果需要写入的数据量较大,可以使用BufferedOutputStream类。

BufferedOutputStream类会在内存中创建缓冲区,将写入的数据先存储在缓冲区中,等到缓冲区达到一定的容量或者通过调用flush()方法时,将缓冲区中的数据写入到文件中。

代码示例:

public static void writeFile(String filePath, String content) {
    try {
        FileOutputStream fos = new FileOutputStream(filePath);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        byte[] data = content.getBytes();
        bos.write(data);
        bos.flush();  //调用flush()方法将缓冲区中的数据写入文件
        bos.close();
        fos.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

以上就是使用Java的IO函数读写文件的详细教程。通过学习本文,您已经了解了如何读取和写入文件,并掌握了如何使用Java中的IO函数来进行文件处理。