Java实现文件复制的四种方式

时间:2021-08-27 14:16:00

背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制。

实现方式一:使用FileInputStream/FileOutputStream字节流进行文件的复制操作

 1 private static void streamCopyFile(File srcFile, File desFile) throws IOException {
2 // 使用字节流进行文件复制
3 FileInputStream fi = new FileInputStream(srcFile);
4 FileOutputStream fo = new FileOutputStream(desFile);
5 Integer by = 0;
6 //一次读取一个字节
7 while((by = fi.read()) != -1) {
8 fo.write(by);
9 }
10 fi.close();
11 fo.close();
12 }

实现方式二:使用BufferedInputStream/BufferedOutputStream高效字节流进行复制文件

 1 private static void bufferedStreamCopyFile(File srcFile, File desFile) throws IOException {
2 // 使用缓冲字节流进行文件复制
3 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
4 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desFile));
5 byte[] b = new byte[1024];
6 Integer len = 0;
7 //一次读取1024字节的数据
8 while((len = bis.read(b)) != -1) {
9 bos.write(b, 0, len);
10 }
11 bis.close();
12 bos.close();
13 }

实现方式三:使用FileReader/FileWriter字符流进行文件复制。(注意这种方式只能复制只包含字符的文件,也就意味着你用记事本打开该文件你能够读懂)

 1 private static void readerWriterCopyFile(File srcFile, File desFile) throws IOException  {
2 // 使用字符流进行文件复制,注意:字符流只能复制只含有汉字的文件
3 FileReader fr = new FileReader(srcFile);
4 FileWriter fw = new FileWriter(desFile);
5
6 Integer by = 0;
7 while((by = fr.read()) != -1) {
8 fw.write(by);
9 }
10
11 fr.close();
12 fw.close();
13 }

实现方式四:使用BufferedReader/BufferedWriter高效字符流进行文件复制(注意这种方式只能复制只包含字符的文件,也就意味着你用记事本打开该文件你能够读懂)

 1 private static void bufferedReaderWriterCopyFile(File srcFile, File desFile)  throws IOException {
2 // 使用带缓冲区的高效字符流进行文件复制
3 BufferedReader br = new BufferedReader(new FileReader(srcFile));
4 BufferedWriter bw = new BufferedWriter(new FileWriter(desFile));
5
6 char[] c = new char[1024];
7 Integer len = 0;
8 while((len = br.read(c)) != -1) {
9 bw.write(c, 0, len);
10 }
11
12 //方式二
13 /*String s = null;
14 while((s = br.readLine()) != null) {
15 bw.write(s);
16 bw.newLine();
17 }*/
18
19 br.close();
20 bw.close();
21 }

以上便是Java中分别使用字节流、高效字节流、字符流、高效字符流四种方式实现文件复制的方法!