package cn.itcast_02;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 复制文本文件
*
* 分析:
* 复制数据,如果我们用记事本打开并能够读懂,就用字节流,否则就使用字节流
* 通过该原理,我们知道我们采用字符流更方便一些
* 而字符流有5种方式,所以做这个题目我们有5种方式。推荐掌握第5种
* 1.基本字符流一次读取一个字符
* 2.基本字符流一次读取一个字符数组
* 3.字符缓冲流一次读取一个字符
* 4.字符缓冲流一次读取一个字符数组
* 5.一次读取一行字符串
*
* 数据源:a.txt --- FileReader ---BufferedReader
*
* 目的地:b.txt --- FileWriter --- BuffereWriter
*
*
*/
public class 字符流复制文本文件的5种方式 {
public static void main(String[] args) throws IOException {
String srcString = "a.txt";
String desString = "b.txt";
//method1(srcString,desString);
//method2(srcString,desString);
//method3(srcString,desString);
//method4(srcString,desString);
method5(srcString,desString);
}
//一次读取一行字符串
private static void method5(String srcString, String desString) throws
IOException {
//封装数据源
BufferedReader fr = new BufferedReader(new FileReader(srcString));
//封装目的地
BufferedWriter fw = new BufferedWriter(new FileWriter(desString));
//复制
String s =null;
while((s = fr.readLine()) != null) {
fw.write(s);
fw.newLine();
fw.flush();
}
//释放资源
fr.close();
fw.close();
}
//字符缓冲流一次读取一个字符数组
private static void method4(String srcString, String desString) throws
IOException {
//封装数据源
BufferedReader fr = new BufferedReader(new FileReader(srcString));
//封装目的地
BufferedWriter fw = new BufferedWriter(new FileWriter(desString));
//复制
char[] ch = new char[1024];
int len = 0;
while((len = fr.read(ch)) != -1) {
fw.write(ch,0,len);
}
//释放资源
fr.close();
fw.close();
}
//字符缓冲流一次读取一个字符
private static void method3(String srcString, String desString) throws IOException {
//封装数据源
BufferedReader fr = new BufferedReader(new FileReader(srcString));
//封装目的地
BufferedWriter fw = new BufferedWriter(new FileWriter(desString));
//复制
char[] ch = new char[1024];
int len = 0;
while((len = fr.read(ch)) != -1) {
fw.write(ch,0,len);
}
//释放资源
fr.close();
fw.close();
}
//基本字符流一次读取一个字符数组
private static void method2(String srcString, String desString) throws IOException {
//封装数据源
FileReader fr = new FileReader(srcString);
//封装目的地
FileWriter fw = new FileWriter(desString);
//复制
char[] ch = new char[1024];
int len = 0;
while((len = fr.read(ch)) != -1) {
fw.write(ch,0,len);
}
//释放资源
fr.close();
fw.close();
}
//基本字符流一次读取一个字符
private static void method1(String srcString, String desString) throws IOException {
//封装数据源
FileReader fr = new FileReader(srcString);
//封装目的地
FileWriter fw = new FileWriter(desString);
//复制
int by = 0;
while((by = fr.read()) != -1) {
fw.write(by);
}
//释放资源
fr.close();
fw.close();
}
}
字符流复制文本文件的5种方式
最新推荐文章于 2022-02-07 21:55:50 发布