Java 文件流

文件是计算机存储数据的一种常见形式。在Java中,我们可以使用文件流来读取和写入文件。文件流是一种用于从文件读取数据或向文件写入数据的IO流。

文件流的基本概念

在Java中,文件流是一种用于在文件中读取和写入数据的IO流。它提供了一种以字节流的形式访问文件的方式。文件流主要有两种类型:输入流(InputStream)和输出流(OutputStream)。

  • 输入流(InputStream):用于从文件中读取数据的流。它提供了一些方法,如read()用于读取单个字节,read(byte[] buffer)用于读取多个字节到缓冲区等。

  • 输出流(OutputStream):用于将数据写入文件的流。它提供了一些方法,如write(int b)用于写入单个字节,write(byte[] buffer)用于写入缓冲区中的多个字节等。

文件流的使用示例

下面是一个使用文件流读取和写入文件的示例代码:

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

public class FileStreamExample {

    public static void main(String[] args) {
        String inputFile = "input.txt";
        String outputFile = "output.txt";

        try {
            // 创建输入流
            FileInputStream inputStream = new FileInputStream(inputFile);
            // 创建输出流
            FileOutputStream outputStream = new FileOutputStream(outputFile);

            // 读取文件内容并写入到输出流
            int byteRead;
            while ((byteRead = inputStream.read()) != -1) {
                outputStream.write(byteRead);
            }

            // 关闭流
            inputStream.close();
            outputStream.close();

            System.out.println("文件读取和写入完成!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例中,我们创建了一个FileStreamExample类,并在main方法中使用了文件流来读取和写入文件。需要注意的是,我们使用了FileInputStreamFileOutputStream来创建输入和输出流。

在主方法中,我们首先定义了要读取的输入文件和要写入的输出文件的名称。然后,我们在try-catch块中创建了输入和输出流。接下来,我们使用read()方法从输入流中读取每个字节,并使用write()方法将其写入输出流中,直到达到文件的末尾。最后,我们关闭输入和输出流,并打印一条完成消息。

文件流的流程图

下面是使用文件流进行文件读取和写入的流程图:

st=>start: 开始
op1=>operation: 创建输入流
op2=>operation: 创建输出流
op3=>operation: 读取文件内容
op4=>operation: 写入文件内容
op5=>operation: 关闭输入流
op6=>operation: 关闭输出流
e=>end: 完成

st->op1->op2->op3->op4->op5->op6->e

总结

文件流是Java中读取和写入文件的一种常用方式。它提供了输入流和输出流,分别用于从文件中读取数据和将数据写入文件。在使用文件流时,我们需要创建输入和输出流,并使用read()write()方法进行读取和写入操作。最后,我们还需要关闭流以释放系统资源。通过掌握文件流的使用,我们可以更好地处理文件操作和数据存储的需求。

参考文献:

  • Java文件IO - 文件流。