Java實現文件複製的四種方式

背景:有不少的Java初學者對於文件複製的操做老是搞不懂,下面我將用4中方式實現指定文件的複製。spa

實現方式一:使用FileInputStream/FileOutputStream字節流進行文件的複製操做it

 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高效字節流進行復制文件io

 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字符流進行文件複製。(注意這種方式只能複製只包含字符的文件,也就意味着你用記事本打開該文件你可以讀懂)stream

 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中分別使用字節流、高效字節流、字符流、高效字符流四種方式實現文件複製的方法!數據

相關文章
相關標籤/搜索