(1)复制文本文件(5种方法)实现
//复制文本文件的五种方
//1.普通数据流复制文本
//2.缓冲数据流输复制文本
//3.缓冲数据的特殊功能*/
//读文件
/*1.一次读取一个字符
2.一次读取一个字符数组
3.一次读取一行*/
public class BufferedTest1 {
public static void main(String[] args) throws IOException {
String s1="FileWriterTest1.java";
String s2="coucou.txt";
//method1(s1,s2);
//method2(s1,s2);
//method3(s1,s2);
//method4(s1,s2);
method5(s1,s2);
}
public static void method1(String s1,String s2) throws IOException{
//基本数据流
FileReader fr=new FileReader(s1);
FileWriter fw=new FileWriter(s2);
//读数据:一次读取一个字符
int ch;
while((ch=fr.read())!=-1){
fw.write((char)ch);
fw.flush();
}
fw.close();
fr.close();
}
public static void method2(String s1,String s2) throws IOException{
//基本数据流
FileReader fr=new FileReader(s1);
FileWriter fw=new FileWriter(s2);
//读数据:一次读取一个字符数组
char[] ch=new char[1024];
int rr;
while((rr=fr.read(ch))!=-1){
fw.write(ch, 0, rr);
fw.flush();
}
fw.close();
fr.close();
}
public static void method3(String s1,String s2) throws IOException{
//2.缓冲数据流输复制文本
//读数据:一次读取一个字符
BufferedReader br=new BufferedReader(new FileReader(s1));
BufferedWriter bw=new BufferedWriter(new FileWriter(s2));
int ch;
while((ch=br.read())!=-1){
bw.write((char)ch);
bw.flush();
}
bw.close();
br.close();
}
public static void method4(String s1,String s2) throws IOException{
//2.缓冲数据流输复制文本
//读数据:一次读取一个字符数组
BufferedReader br=new BufferedReader(new FileReader(s1));
BufferedWriter bw=new BufferedWriter(new FileWriter(s2));
char[] ch=new char[1024];
int rr;
while((rr=br.read(ch))!=-1){
bw.write(ch, 0, rr);
bw.flush();
}
bw.close();
br.close();
}
public static void method5(String s1,String s2) throws IOException{
//3.缓冲数据的特殊功能
//一次读取一行,不读取换行符
BufferedReader br=new BufferedReader(new FileReader(s1));
BufferedWriter bw=new BufferedWriter(new FileWriter(s2));
String cha;
while((cha=br.readLine())!=null){
bw.write(cha);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
}
(2)把ArrayList集合中的字符串数据存储到文本文件中去,每一个字符串元素作为文件中的一行数据
步骤: * A:创建ArrayList集合对象,往集合中添加字符串元素
* B:创建输出缓冲流对象
* C:遍历集合,得到的每一个字符串写入文件中去
* D:释放资源 * */
public class BufferedTest2 {
public static void main(String[] args) throws IOException {
ArrayListarr=new ArrayList();
arr.add("Hello");
arr.add("World");
BufferedWriter bw=new BufferedWriter(new FileWriter("StringData.txt"));
for(int i=0;i<arr.size();i++){
bw.write(arr.get(i));
bw.newLine();
}
bw.close();
}
}
三 :从文本文件中读取数据到ArrayList集合中,并遍历集合,每一行数据作为一个字符串元素
/*步骤:A:创建输入缓冲流对象
* B:创建ArrayList集合对象读取数据
* C:读取数据存储到集合
* D:遍历集合,将数据输出到控制台
* E:释放资源 */
public class BufferedTest3 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("StringData.txt"));
ArrayListarr=new ArrayList(); //一次读取一行数据
String chs;
while((chs=br.readLine())!=null){
arr.add(chs);
}
//遍历集合
for(int i=0;i<arr.size();i++){
Sysotem.out.println(arr.get(i));
}
bw.close();
}
}