package java_0303_afternoon;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Arrays;
public class FileCopyDemo {
public static void copyFile(File file, File file2){
//文件类应该选择字节还是字符流呢?若文件是多媒体类型的文件(图片、音乐、视频),则只能使用字节流
//若文件类型为文档文件(txt,doc等),则优先选择字符流
//取出原来文件的所有内容
Reader reader = null;
Writer writer = null;
try {
reader = new FileReader(file);
writer = new FileWriter(file2);
//若不清楚文档字符总数,定义缓存数组大小最好设置为1024的倍数
char[] cbuf = new char[1024];
int len;//每次读取的字符数量
/*//存储读取出来的所有内容
StringBuilder builder = new StringBuilder();
while ((len = reader.read(cbuf)) != -1) {
if (len < cbuf.length) {
//最后一次读取的数据不能填满缓冲数组
builder.append(Arrays.copyOf(cbuf, len));
} else {
builder.append(cbuf);
}
}
//把旧文件中的内容写入到新文件中
writer.write(builder.toString());*/
//边读边写
while ((len = reader.read(cbuf)) != -1) {
//当前次读取的数据都已经保存到cbuf字符数组中
writer.write(cbuf, 0, len);
}
System.out.println("复制文件结束");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
reader.close();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
File file = new File("d:/1.txt");
File file2 = new File("e:/1.txt");
copyFile(file, file2);
}
}
//buffered
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
public class CopyDemo {
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public static void copyFile(File file,File file2){
<span style="white-space:pre"> </span>Reader reader=null;
<span style="white-space:pre"> </span>Writer writer=null;
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>reader=new FileReader(file);
<span style="white-space:pre"> </span>} catch (FileNotFoundException e) {
<span style="white-space:pre"> </span>// TODO Auto-generated catch block
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>writer=new FileWriter(file2);
<span style="white-space:pre"> </span>} catch (IOException e) {
<span style="white-space:pre"> </span>// TODO Auto-generated catch block
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>BufferedReader bufferedReader=new BufferedReader(reader);
<span style="white-space:pre"> </span>BufferedWriter bufferedWriter = new BufferedWriter(writer);
<span style="white-space:pre"> </span>String str=null;
<span style="white-space:pre"> </span>//int len;
<span style="white-space:pre"> </span>//char[] chars=new char[1024];
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>while((str=bufferedReader.readLine())!=null){
<span style="white-space:pre"> </span>bufferedWriter.write(str);
<span style="white-space:pre"> </span>bufferedWriter.newLine();
<span style="white-space:pre"> </span>bufferedWriter.flush();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>System.out.println("复制文件结束");
<span style="white-space:pre"> </span>} catch (IOException e) {
<span style="white-space:pre"> </span>// TODO Auto-generated catch block
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>public static void main(String[] args) {
<span style="white-space:pre"> </span>File file=new File("d:\\1.txt");
<span style="white-space:pre"> </span>File file2=new File("d:\\2.txt");
<span style="white-space:pre"> </span>copyFile(file,file2);
<span style="white-space:pre"> </span>}
}