Outputstreamwriter类是Java中的一种输出流类,它可以将文本数据以字符流形式写入到输出流中。在Java的I/O中,文本数据和二进制数据是不同的,因为文本数据包含了字符编码信息,所以需要使用字符流来读写。
在本文中,我们将介绍。
一、Outputstreamwriter类介绍
Outputstreamwriter类继承了Java的Writer类,它是一个字符流的输出流,能够将字符流写入到输出流中。
Outputstreamwriter类有多个构造函数,它们的使用方法如下:
1. Outputstreamwriter(OutputStream out)
使用指定的OutputStream创建一个新的Writer。例如:
```
FileOutputStream fos = new FileOutputStream("output.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
```
2. Outputstreamwriter(OutputStream out, String charsetName)
使用指定的OutputStream和字符集创建一个新的Writer。例如:
```
FileOutputStream fos = new FileOutputStream("output.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
```
其中,charsetName指定了字符编码格式,在本例中使用了UTF-8编码。
二、使用Outputstreamwriter类将文件内容写入输出流的方法
使用Outputstreamwriter类将文件内容写入输出流的方法有以下步骤:
1. 创建一个OutputStreamWriter对象,指定输出流和字符编码格式。例如:
```
FileOutputStream fos = new FileOutputStream("output.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
```
2. 使用write()方法将文件内容写入输出流中。例如:
```
FileInputStream fis = new FileInputStream("input.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader reader = new BufferedReader(isr);
String line;
while ((line = reader.readLine()) != null) {
osw.write(line);
}
```
3. 最后记得关闭输出流。例如:
```
osw.close();
```
三、示例
为了更好地了解如何使用Outputstreamwriter类将文件内容写入输出流,我们来看一个例子。
1. 创建一个input.txt文件,输入以下内容:
```
Hello World!
```
2. 创建一个名为OutputStreamWriterDemo的Java类,输入以下代码:
```
import java.io.*;
public class OutputStreamWriterDemo {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("input.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader reader = new BufferedReader(isr);
FileOutputStream fos = new FileOutputStream("output.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
String line;
while ((line = reader.readLine()) != null) {
osw.write(line);
}
reader.close();
isr.close();
fis.close();
osw.close();
fos.close();
}
}
```
3. 运行程序,输入以下命令:
```
java OutputStreamWriterDemo
```
4. 输出结果:
```
input.txt文件中的内容被写入到output.txt文件中
```
在本例中,我们首先创建了一个FileInputStream对象和一个InputStreamReader对象,用于读取input.txt文件中的文本数据。我们使用BufferedReader类的readLine()方法逐行读取文件内容,并将每行文本数据写入到输出流中。
最后,我们使用close()方法关闭输入流和输出流,释放资源。
总结
本文介绍了。Outputstreamwriter类是一个字符流输出流类,用于将字符流写入到输出流中,常用于文本文件的写入操作。我们可以使用它来简化Java I/O操作,提高编程效率。