1. 程式人生 > >使用Java IO 流進行檔案的複製,複製成功,卻打不開復制的檔案

使用Java IO 流進行檔案的複製,複製成功,卻打不開復制的檔案

在剛開始學習Java IO操作的時候,用的並不是很熟,看的書本上的內容也講的不可能很全面,很多小的方面都必須從實踐中慢慢積累、學習。
在這裡遇到的一個問題是,複製成功的檔案,卻打不開。比如PDF檔案,顯示檔案損壞,打不開檔案。後來才發現是因為原因在位元組流操作和字元流操作的區別:
字元流主要針對一些文字文件(比位元組流操作的效率要高),比如.txt、.doc,而pdf就不行。
位元組流幾乎可以對任何檔案型別進行操作,主要是對非檔案型別的,如媒體檔案(音訊,視訊,圖片…)。

   /**
    *使用緩衝位元組流進行PDF文件的複製
    */
    public static void
copyPDF(File src, File des) throws IOException { FileOutputStream writer = null; FileInputStream reader = null; BufferedInputStream bufR = null; BufferedOutputStream bufW = null; try { reader = new FileInputStream(src); writer = new FileOutputStream(des); bufR = new
BufferedInputStream(reader); bufW = new BufferedOutputStream(writer); int temp = 0; while ((temp = bufR.read()) != -1) { bufW.write(temp); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if
(bufR != null) { reader.close(); bufR.close(); } if (bufW != null) { writer.close(); bufW.close(); } } }

檔案操作完成,一定要記得關閉流。