1. 复制文本文件方式一
在使用计算机的时候,经常会用到复制操作,把一个文本文件从一个位置复制到另一个位置,因为是要操作文本数据,所以使用字符流来实现文件的复制操作。
要实现复制操作,那么首先要明确需要读取的源文件,读取了源文件的数据之后,把源文件的数据写到一个新文件里,这个新文件就是目的文件,这就实现的复制操作。
1.读取一个已有的文本文件,使用字符读取流和文件相关联。读取当前目录下的一个test.txt文件,注意,在Myeclipse里面,当前目录指的是项目目录而不是这个类文件所在的目录。
2.创建一个目的,用于存储读到数据。
3.先用第一种方式频繁的读写操作。
4.关闭流资源。
代码:
package com.java.base;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyTextTest {
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
// 1,读取一个已有的文本文件,使用字符读取流和文件相关联。
fr = new FileReader("test.txt");
// 2,创建一个目的,用于存储读到数据。
fw = new FileWriter("test_copy.txt");
// 3,频繁的读写操作。
int ch = 0;
while ((ch = fr.read()) != -1) {
fw.write(ch);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 4,关闭流资源。
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fr != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
运行一下,刷新项目,就可以看到复制的文件了。
2. 复制文本文件方式二
读写文件还有另外一种方式,这种方式效率更高。
package com.java.base;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyTextTest2 {
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("test.txt");
fw = new FileWriter("test_copy.txt");
//创建一个临时容器,用于缓存读取到的字符。
char[] buf = new char[1024];//这就是缓冲区。
//定义一个变量记录读取到的字符数,(其实就是往数组里装的字符个数 )
int len = 0;
while((len=fr.read(buf))!=-1){
fw.write(buf, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 4,关闭流资源。
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fr != null) {
try {
fr.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}
}