今天学习了java中对文件的操作,遇到一道简单的题目想来和大家分享。
题目:
复制文件是常见的IO操作,设计如下方法,实现复制源文件srcFile到目标文件destFile
代码如下:
package stream;
import java.io.*;
public class Test1 {
public static void main(String[] args) {
File f = new File("D:/123.txt");//源文件
File f2 = new File("D:/321.txt");//目标文件
try(FileWriter fr = new FileWriter(f2);FileReader fw = new FileReader(f)){
char[] cs = new char[(int)f.length()];//将数组cs作为中转站
fw.read(cs);//先从源文件中读取内容放在数组中
fr.write(cs);//将数组中的文件写到目标文件中
fr.close();
fw.close();//完成之后记得关闭
}catch(IOException e) {
e.printStackTrace();
}
}
}
思路:
我这里把f当成源文件,f2当成目标文件。因为f文件中都是一些字符,所以这里我就使用了字符流来完成对文件的读写操作。基本思路就是将f的内容读取放在一个数组中,然后再把数组中的内容写入到目标文件f2中。
如果文件f里不是字符,而是一张图片,那我用字符流去读取就会出错,那么此时就要用字节流去完成读取操作(也就是FileOutputStream / FileInputStream)。不管是使用字节流还是字符流都需要使用异常捕获(也就是try-catch)否则编译会通不过。