21xrx.com
2024-12-22 22:45:00 Sunday
登录
文章检索 我的文章 写文章
Java字符流复制文件的实现方法
2023-07-12 09:07:11 深夜i     --     --
Java 字符流 复制文件 实现方法

Java字符流(Reader/Writer)可以读写字符数据,在文件读写中可以使用字符流操作文本文件。本文介绍Java字符流复制文件的实现方法。

1. FileReader和FileWriter

使用FileReader和FileWriter类可以打开一个文件进行读或写。FileReader和FileWriter类实现FileReader和FileWriter类是Java I/O API中的基本字符流类。在复制文件时,可以使用FileReader对象从要复制的源文件读取数据,然后将数据作为字符流写入到目标文件中。下面是一个示例代码:


FileReader reader = new FileReader("source.txt");

FileWriter writer = new FileWriter("target.txt");

int ch;

while ((ch = reader.read()) != -1) {

  writer.write(ch);

}

reader.close();

writer.close();

在上面的代码中,程序从源文件(source.txt)中读取字符,然后将字符写入目标文件(target.txt)中。注意,在读取和写入操作完成后,需要关闭Reader和Writer对象。

2. BufferedReader和BufferedWriter

使用BufferedReader和BufferedWriter类,可以提高在从文件读取数据和写入数据时的效率。BufferedReader和BufferedWriter是Java I/O API中的缓存类。它们可以将数据缓存到内存中,以提高读取和写入文件的效率。下面是一个示例代码:


BufferedReader reader = new BufferedReader(new FileReader("source.txt"));

BufferedWriter writer = new BufferedWriter(new FileWriter("target.txt"));

String line;

while ((line = reader.readLine()) != null) {

  writer.write(line);

  writer.newLine(); // 添加换行符

}

reader.close();

writer.close();

在上面的代码中,程序使用BufferedReader读取源文件(source.txt)中的文本数据,并将它们写入目标文件(target.txt)中。注意,在读取和写入操作完成后,需要关闭Reader和Writer对象。

3. InputStreamReader和OutputStreamWriter

使用InputStreamReader和OutputStreamWriter类,可以在读取和写入文本数据时,指定数据的字符编码。下面是一个示例代码:


FileInputStream fis = new FileInputStream("source.txt");

FileOutputStream fos = new FileOutputStream("target.txt");

InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); // 指定源文件编码

OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); // 指定目标文件编码

int ch;

while ((ch = isr.read()) != -1) {

  osw.write(ch);

}

isr.close();

osw.close();

在上面的代码中,程序指定源文件(source.txt)和目标文件(target.txt)的编码为UTF-8。这样,在复制文件时,源文件中的字符编码会被转换为UTF-8编码,然后写入到目标文件中。注意,在读取和写入操作完成后,需要关闭InputStreamReader和OutputStreamWriter对象。

总结

本文介绍了Java字符流复制文件的实现方法。可以使用FileReader和FileWriter、BufferedReader和BufferedWriter、InputStreamReader和OutputStreamWriter等类来完成复制操作。在操作过程中,需要注意关闭读写对象。同时,如果需要指定源文件和目标文件编码,可以使用InputStreamReader和OutputStreamWriter类来指定。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复