我这里只是提供简单的成品代码,不明白的点请看我前面写的有关IO的基础知识,通常使用“代码2”
代码1(节点流):
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyFile {
public static void main(String[] args) {
File f1 = new File("src/foryou/IO/hello3.txt");
File f2 = new File("src/foryou/IO/hello3_copy.txt");
FileReader read = null;
FileWriter write = null;
try {
read = new FileReader(f1);
write = new FileWriter(f2);
char c[] =new char[10];
int len;
while((len = read.read(c)) != -1) {
write.write(c, 0, len);
}
} catch (Exception e) {
System.out.println(e);
}finally {
try {
if(write!=null) {
write.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(read!=null) {
read.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("copy is completed");
}
}
代码2:(缓冲流)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileReder_WriterCopyFile {
public static void main(String[] args) {
File f1 = new File("src/foryou/IO/hello3.txt");
File f2 = new File("src/foryou/IO/hello3_copy.txt");
BufferedReader bread = null;
BufferedWriter bwrite = null;
try {
bread = new BufferedReader(new FileReader(f1));
bwrite = new BufferedWriter(new FileWriter(f2));
char c[] =new char[10];
String data;
//以一行为单位进行读取
while((data = bread.readLine()) != null) {
bwrite.write(data);
}
} catch (Exception e) {
System.out.println(e);
}finally {
try {
if(bwrite!=null) {
bwrite.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(bread!=null) {
bread.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("copy is completed");
}
}
结果: