Java 输入输出流的实现
流程概述
在Java中,要实现输入输出流可以分为以下几个步骤:
- 打开输入输出流
- 读取或写入数据
- 关闭输入输出流
下面将详细介绍每个步骤的具体操作。
1. 打开输入输出流
要使用Java的输入输出流,需要先创建一个对应的输入输出流对象。可以根据需求选择使用字节流或字符流,其中字节流适用于处理二进制数据,而字符流适用于处理文本数据。
打开输入流
使用字节流读取文件内容的示例代码如下:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class InputStreamExample {
public static void main(String[] args) {
InputStream input = null;
try {
// 创建文件输入流
input = new FileInputStream(input.txt);
// 读取数据
int data = input.read();
while (data != -1) {
// 处理数据
// 继续读取下一个字节
data = input.read();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭输入流
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
上述代码示例中,首先创建了一个 FileInputStream
对象,并传入要读取的文件名作为参数。然后使用 read()
方法读取文件的字节数据,直到读取到文件末尾(返回值为 -1)。在循环中可以对读取到的数据进行处理。最后,通过 close()
方法关闭输入流。
打开输出流
使用字节流写入文件内容的示例代码如下:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStreamExample {
public static void main(String[] args) {
OutputStream output = null;
try {
// 创建文件输出流
output = new FileOutputStream(output.txt);
// 写入数据
byte[] data = Hello, world!.getBytes();
output.write(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭输出流
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
上述代码示例中,首先创建了一个 FileOutputStream
对象,并传入要写入的文件名作为参数。然后使用 write()
方法将字节数据写入文件。最后,通过 close()
方法关闭输出流。
2. 读取或写入数据
在打开输入输出流后,可以通过相应的方法读取或写入数据。
读取数据
使用字符流读取文件内容的示例代码如下:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderExample {
public static void main(String[] args) {
BufferedReader reader = null;
try {
// 创建文件读取流
reader = new BufferedReader(new FileReader(input.txt));
// 读取数据
String line = reader.readLine();
while (line != null) {
// 处理数据
// 继续读取下一行
line = reader.readLine();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭读取流
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
上述代码示例中,首先创建了一个 BufferedReader
对象,并将其包装在 FileReader
中。然后使用 readLine()
方法逐行读取文件内容,直到读取到文件末尾(返回值为 null
)。在循环中可以对读取到的数据进行处理。最后,通过 close()
方法关闭读取流。
写入数据
使用字符流写入文件内容的示例代码如下:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterExample {
public static void main(String[] args) {
BufferedWriter writer = null;
try {
// 创建文件写入流
writer = new BufferedWriter(new FileWriter(output.txt));
// 写入数据
writer.write(Hello, world!);
} catch (IOException e) {
e.printStackTrace();
} finally