日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

javaIO流实现文件拷贝

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaIO流实现文件拷贝 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

javaIO流其他流的練習
要求:
如c盤作業文件夾下分別有文本文檔,子目錄(子目錄下有其他子目錄和文本文檔的文件)、圖片格式文件。

如上涉及到的不止是文本,還有圖片和子目錄
所以要用到字節流FileInputStream ,FileOutputStream。當然也可以用緩沖流。

涉及多重子文件目錄
需要用迭代

文件夾包括目錄名和具體文件
對于目錄,我們只需在路徑生成就行
對于具體文件,我們要在對應的目錄下面將其拷貝過去

對于抽象文件的處理,我們使用File
該類有關于文件的處理,如獲取絕對路徑,獲取文件名等

private static void CopyDir(File filesrc, File filedest){if(filesrc.isFile()){//是文件先拷貝,再跳出該次遞歸,否則即為目錄,進入目錄操作。//System.out.println(filesrc.getAbsolutePath());//是文件就進行拷貝處理copyfile(filesrc,filedest);return;}File temFile=null;File[] files=filesrc.listFiles();for (File f:files) {//文件或目錄File newdest=null;File newsrc=null;if(f.isDirectory()){/*當f是目錄中的一個子目錄時 進入*/String name=f.getName();String destDir=filedest.getAbsolutePath().endsWith("\\")?(filedest.getAbsolutePath()+name):(filedest.getAbsolutePath()+"\\"+name);/*System.out.println(destDir);*///在拷貝路徑中生成新的目錄newdest=new File(destDir);if(!newdest.exists())newdest.mkdirs();/*String srcDir=f.getAbsolutePath().endsWith("\\")?f.getAbsolutePath():(f.getAbsolutePath()+"\\");*/String srcDir=f.getAbsolutePath();System.out.println(srcDir);newsrc=new File(srcDir);temFile=newdest;//更新拷貝路徑CopyDir(newsrc,temFile);}//temFile=newdest;/*當目錄下的是一個文件時 進入下一次循環,然后直接拷貝*/if(!(f.isDirectory())){CopyDir(f,filedest);}}}

關于文件的拷貝涉及到的文件流,開頭第一篇文章有,這里再次寫一下

private static void copyfile(File src,File dest){FileInputStream fileInputStream=null;FileOutputStream fileOutputStream=null;String txt=dest.getAbsolutePath().endsWith("\\")?dest.getAbsolutePath():(dest.getAbsolutePath()+"\\")+src.getName();System.out.println(txt);try{fileInputStream=new FileInputStream(src);fileOutputStream=new FileOutputStream(txt);byte[] bytes=new byte[1024*1024];int readcount;while ((readcount=fileInputStream.read(bytes))!=-1){fileOutputStream.write(bytes,0,readcount);}fileOutputStream.flush();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if(fileInputStream!=null) {try {fileInputStream.close();} catch (IOException e) {e.printStackTrace();}}if(fileOutputStream!=null){try {fileOutputStream.close();} catch (IOException e) {e.printStackTrace();}}}}

主函數

public static void main(String[] args) {File filesrc=new File("C:\\Users\\wish_cai\\Pictures\\作業");File filedest=new File("D:\\bilibili\\JJDown\\Download\\Java零基礎教程視頻(適合Java 0基礎,Java初學入門)\\copy\\");CopyDir(filesrc,filedest);}

總結

以上是生活随笔為你收集整理的javaIO流实现文件拷贝的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。