Java中的IO流是什么?

  • Post category:Java

IO(Input/Output)流是Java程序中,用于读写数据的机制。I/O流可以连接到各种类型的物理存储连接,如文件、网络套接字、内存和管道等。Java中的I/O流库是java.io。

Java的I/O流有两种类型:

  1. 字符流(Reader,Writer):以字符为单位进行读取和写入。所有Reader和Writer类都直接继承自抽象类Reader和Writer。
  2. 字节流(InputStream,OutputStream):以字节为单位进行读取和写入。所有InputStream和OutputStream类都直接继承自抽象类InputStream和OutputStream。

下面是两条示例说明:

  1. FileInputStream 和 FileOutputStream
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileDemo {
    public static void main(String args[]) throws IOException {
        File inputFile = new File("input.txt");
        File outputFile = new File("output.txt");

        FileInputStream fis = new FileInputStream(inputFile);
        FileOutputStream fos = new FileOutputStream(outputFile);

        int ch;
        while ((ch = fis.read()) != -1) {
            fos.write(ch);
        }

        fos.close();
        fis.close();
    }
}

上面的示例代码读取了名为input.txt的文件并将其写入名为output.txt的文件。程序中使用了FileInputStream和FileOutputStream类。

  1. BufferedReader 和 BufferedWriter
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileDemo2 {
    public static void main(String args[]) throws IOException {
        FileReader fr = new FileReader("input.txt");
        BufferedReader br = new BufferedReader(fr);

        FileWriter fw = new FileWriter("output.txt", true);
        BufferedWriter bw = new BufferedWriter(fw);

        String line;
        while ((line = br.readLine()) != null) {
            bw.write(line);
            bw.newLine();
        }

        bw.close();
        fw.close();

        br.close();
        fr.close();
    }
}

上面的示例代码读取了名为input.txt的文件并将其按行写入名为output.txt的文件。程序中使用了BufferedReader和BufferedWriter类。

以上两条示例展示了Java中I/O流的用法,其中输入和输出流可以连接到不同类型的物理存储连接,他们可以连接到文件、网络套接字、内存和管道等。这为Java基于文件和网络的应用程序提供了强大的支持。