编程思路:
/*
* 将A文件中的内容复制到B文件中
*
* 复制原理:
* 其实就是将A文件中文件数据存储到B文件中
* 步骤:
* 1.在自己想要存储的地方创建一个B文件,用于存储A文件中的数据
* 2.定义读取流和A文件关联
* 3.通过不断的读写完成数据存储
* 4.关闭流资源
*/
一、方法一:从A文件中读一个字符,就往B文件中写一个字符
//方法一:从A文件中读一个字符,就往B文件中写一个字符
public static void copy_1() throws IOException{
//创建目的地
FileWriter fw= new FileWriter("DemoCope1.txt");
FileReader fr = new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java");
int num = 0;
while ((num = fr.read()) !=-1) {
fw.write(num);
}
fw.close();
fr.close();
}二、方法二:先把A文件中的内容全部读出来后,在往B文件中写
//方法二:先把A文件中的内容全部读出来后,在往B文件中写
public static void Copy_2(){
FileWriter fw = null;
FileReader fr = null;
try {
//先创建目的地文件
fw = new FileWriter("CopyTextContent.txt");
fr= new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java");
char [] reader = new char[1024];
int num = 0;
while ((num = fr.read(reader)) !=-1) {
fw.write(reader,0,num);
}
} catch (IOException e) {
throw new RuntimeException("读写错误");
}finally{
if (fw !=null) {
try {
fw.close(); //这里使用try-catch是因为防止创建失败(路径错误之类),当创建失败的时候这里就会出现NullPointerException
} catch (Exception e2) {
}
}
if (fr !=null) {
try {
fr.close(); //同上
} catch (Exception e2) {
}
}
}
}
注意:在写项目的时候一般使用方法二,还是就是一般不要使用throws来抛出异常,使用方法二的比较好
三、方法三:使用缓存区的方法进行
//使用缓存区复制一个.java文件
public static void BufferedDemo(){
BufferedWriter bfWriter = null;
BufferedReader bfReader =null;
try {
bfWriter = new BufferedWriter(new FileWriter("Demo.txt"));
bfReader = new BufferedReader(new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java"));
String line = null;
while ((line = bfReader.readLine())!=null) {
bfWriter.write(line);
bfWriter.newLine(); //因为每次是读取一行内容,所以显示一行后就得换行
bfWriter.flush(); //刷新内容
}
} catch (IOException e) {
throw new RuntimeException("读写错误!");
}finally{
if (bfWriter !=null) {
try {
bfWriter.close();
} catch (Exception e2) {
throw new RuntimeException("写入关闭失败!");
}
}
if (bfReader !=null) {
try {
bfReader.close();
} catch (Exception e2) {
throw new RuntimeException("读取关闭失败!");
}
}
}
}