小編給大家分享一下如何通過(guò)JAVA NIO非直接緩沖區(qū)拷貝文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
為三原等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及三原網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、三原網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
通過(guò)JAVA NIO 非直接緩沖區(qū)拷貝文件
/** * 通過(guò)JAVA NIO 非直接緩沖區(qū)拷貝文件 * * @param sourcePath 源文件路徑 * @param targetPath 目標(biāo)文件路徑 */ public static void copyFileByChannel(String sourcePath, String targetPath) { FileChannel outChannel = null; FileChannel inChannel = null; FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(sourcePath); fos = new FileOutputStream(targetPath); //獲取通道 inChannel = fis.getChannel(); outChannel = fos.getChannel(); //分配指定大小的緩沖區(qū) ByteBuffer buf = ByteBuffer.allocate(1024); while (inChannel.read(buf) != -1) { //轉(zhuǎn)換為讀取數(shù)據(jù)模式 buf.flip(); //寫入到磁盤 outChannel.write(buf); //清空緩沖區(qū) buf.clear(); } } catch (Exception e) { e.printStackTrace(); } finally { //關(guān)閉流 try { if (outChannel != null) { outChannel.close(); } if (inChannel != null) { inChannel.close(); } if (fis != null) { fis.close(); } if (fos != null) { fos.close(); } } catch (IOException e) { e.printStackTrace(); } } }
以上是“如何通過(guò)JAVA NIO非直接緩沖區(qū)拷貝文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!