Java 实验7 输入输出流I/O
时间: 2023-07-05 12:08:46 浏览: 112
Java 的输入输出流(I/O)提供了在程序中读取和写入数据的方式。它们是通过处理流(或过滤器流)的方式工作的,这些流允许你对数据进行处理和转换。
常用的输入输出流有:
1. FileInputStream:用于从文件中读取字节流。
2. FileOutputStream:用于向文件中写入字节流。
3. FileReader:用于从文件中读取字符流。
4. FileWriter:用于向文件中写入字符流。
5. ByteArrayInputStream:用于从内存中读取字节流。
6. ByteArrayOutputStream:用于向内存中写入字节流。
7. CharArrayReader:用于从字符数组中读取字符流。
8. CharArrayWriter:用于向字符数组中写入字符流。
9. StringReader:用于从字符串中读取字符流。
10. StringWriter:用于向字符串中写入字符流。
下面是一个简单的示例,演示了如何使用FileInputStream和FileOutputStream来复制一个文件:
```java
import java.io.*;
public class FileCopyDemo {
public static void main(String[] args) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
```
这个程序将从名为input.txt的文件中读取字节,并将它们写入名为output.txt的文件中。在读取和写入完成后,程序会关闭这两个流。
需要注意的是,在使用输入输出流时,要确保正确地处理异常和关闭流。可以使用try-with-resources语句来简化这个过程,如下所示:
```java
try (FileInputStream in = new FileInputStream("input.txt");
FileOutputStream out = new FileOutputStream("output.txt")) {
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} catch (IOException e) {
e.printStackTrace();
}
```
在此示例中,使用了try-with-resources语句来创建和管理输入输出流。当try块结束时,会自动关闭这两个流,从而避免了显式地关闭流的需要。
除了上述示例中使用的流之外,Java 还提供了许多其他的输入输出流,以满足不同的需求。你可以根据需要选择适合自己的流。
阅读全文