Java IO流练习题

介绍

Java IO流是Java语言中用于读写数据的核心技术之一。IO流可以从文件、网络等各种输入源读取数据,并且可以将数据写入文件、网络等输出目标。在本文中,我们将介绍一些常见的Java IO流练习题,并提供相应的代码示例,帮助读者更好地了解和应用IO流。

什么是Java IO流

在Java中,IO流是一种用于读写数据的机制。它主要通过字节流和字符流两种方式来处理输入输出操作。字节流以字节为单位读写数据,而字符流以字符为单位读写数据。Java提供了一系列的类和接口来支持不同类型的IO操作,比如File、InputStream、OutputStream、Reader和Writer等。

常见的IO流类和接口

下表展示了一些常见的Java IO流类和接口:

类/接口 描述
File 用于表示文件和目录的类
InputStream 用于读取字节数据的抽象类
OutputStream 用于写入字节数据的抽象类
Reader 用于读取字符数据的抽象类
Writer 用于写入字符数据的抽象类
FileInputStream 用于从文件读取字节数据的类
FileOutputStream 用于向文件写入字节数据的类
FileReader 用于从文件读取字符数据的类
FileWriter 用于向文件写入字符数据的类
BufferedReader 带缓冲的字符输入流,提供了一次读取一行数据的方法
BufferedWriter 带缓冲的字符输出流,提供了一次写入一行数据的方法

Java IO流练习题

1. 从文件中读取数据

编写一个Java程序,从文件中读取文本数据,并将其打印到控制台上。

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

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

在上述代码中,我们使用了BufferedReader来读取文件中的数据。通过构造方法将FileReader作为参数传递给BufferedReader,可以实现读取文件的功能。在try-with-resources语句块中,我们使用readLine()方法逐行读取文件内容,并将其打印到控制台上。

2. 向文件中写入数据

编写一个Java程序,向文件中写入文本数据。

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

public class WriteToFileExample {
    public static void main(String[] args) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
            writer.write("Hello, World!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们使用了BufferedWriter来写入数据到文件中。通过构造方法将FileWriter作为参数传递给BufferedWriter,可以实现向文件写入数据的功能。在try-with-resources语句块中,我们使用write()方法将字符串"Hello, World!"写入文件中。

3. 复制文件

编写一个Java程序,实现将一个文件复制到另一个文件的功能。

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

public class FileCopyExample {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("source.txt");
             FileOutputStream fos = new FileOutputStream("destination.txt")) {
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = fis.read(buffer)) != -1) {
                fos.write(buffer, 0, bytesRead);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们使用了FileInputStream从源文件中读取数据,并使用FileOutputStream将数据写入目标文件中。通过定义一个缓冲