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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

android 拷贝文件到其他目录下

發布時間:2024/4/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 拷贝文件到其他目录下 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天,講講如何拷貝文件到指定目錄下。


一,簡單的使用輸入流進行拷貝。

/** * 復制單個文件 * @param oldPath String 原文件路徑 如:c:/fqf.txt * @param newPath String 復制后路徑 如:f:/fqf.txt * @return boolean */ public void copyFile(String oldPath, String newPath) { try { int bytesum = 0; int byteread = 0; File oldfile = new File(oldPath); if (oldfile.exists()) { //文件存在時 InputStream inStream = new FileInputStream(oldPath); //讀入原文件 FileOutputStream fs = new FileOutputStream(newPath); byte[] buffer = new byte[1444]; int length; while ( (byteread = inStream.read(buffer)) != -1) { bytesum += byteread; //字節數 文件大小 System.out.println(bytesum); fs.write(buffer, 0, byteread); } inStream.close(); } } catch (Exception e) { System.out.println("復制單個文件操作出錯"); e.printStackTrace(); } } /** * 復制整個文件夾內容 * @param oldPath String 原文件路徑 如:c:/fqf * @param newPath String 復制后路徑 如:f:/fqf/ff * @return boolean */ public void copyFolder(String oldPath, String newPath) { try { (new File(newPath)).mkdirs(); //如果文件夾不存在 則建立新文件夾 File a=new File(oldPath); String[] file=a.list(); File temp=null; for (int i = 0; i < file.length; i++) { if(oldPath.endsWith(File.separator)){ temp=new File(oldPath+file[i]); } else{ temp=new File(oldPath+File.separator+file[i]); } if(temp.isFile()){ FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream(newPath + "/" + (temp.getName()).toString()); byte[] b = new byte[1024 * 5]; int len; while ( (len = input.read(b)) != -1) { output.write(b, 0, len); } output.flush(); output.close(); input.close(); } if(temp.isDirectory()){//如果是子文件夾 copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]); } } } catch (Exception e) { System.out.println("復制整個文件夾內容操作出錯"); e.printStackTrace(); } }


二,使用緩沖流進行拷貝

import java.io.*; /*** 復制文件夾或文件夾*/ public class CopyDirectory {// 源文件夾 static String url1 = "f:/photos";// 目標文件夾 static String url2 = "d:/tempPhotos";public static void main(String args[]) throws IOException {// 創建目標文件夾 (new File(url2)).mkdirs();// 獲取源文件夾當前下的文件或目錄 File[] file = (new File(url1)).listFiles();for (int i = 0; i < file.length; i++) {if (file[i].isFile()) {// 復制文件 copyFile(file[i],new File(url2+file[i].getName()));}if (file[i].isDirectory()) {// 復制目錄 String sourceDir=url1+File.separator+file[i].getName();String targetDir=url2+File.separator+file[i].getName();copyDirectiory(sourceDir, targetDir);}}} // 復制文件 public static void copyFile(File sourceFile,File targetFile) throws IOException{// 新建文件輸入流并對它進行緩沖 FileInputStream input = new FileInputStream(sourceFile);BufferedInputStream inBuff=new BufferedInputStream(input);// 新建文件輸出流并對它進行緩沖 FileOutputStream output = new FileOutputStream(targetFile);BufferedOutputStream outBuff=new BufferedOutputStream(output);// 緩沖數組 byte[] b = new byte[1024 * 5];int len;while ((len =inBuff.read(b)) != -1) {outBuff.write(b, 0, len);}// 刷新此緩沖的輸出流 outBuff.flush();//關閉流 inBuff.close();outBuff.close();output.close();input.close();}// 復制文件夾 public static void copyDirectiory(String sourceDir, String targetDir)throws IOException {// 新建目標目錄 (new File(targetDir)).mkdirs();// 獲取源文件夾當前下的文件或目錄 File[] file = (new File(sourceDir)).listFiles();for (int i = 0; i < file.length; i++) {if (file[i].isFile()) {// 源文件 File sourceFile=file[i];// 目標文件 File targetFile=new File(new File(targetDir).getAbsolutePath() +File.separator+file[i].getName());copyFile(sourceFile,targetFile);}if (file[i].isDirectory()) {// 準備復制的源文件夾 String dir1=sourceDir + "/" + file[i].getName();// 準備復制的目標文件夾 String dir2=targetDir + "/"+ file[i].getName();copyDirectiory(dir1, dir2);}}} }


第二種的代碼比第一種的代碼進行拷貝的效率快很多,所以建議使用第二種。



android 拷貝文件到其他目錄下就講完了。


就這么簡單。
























總結

以上是生活随笔為你收集整理的android 拷贝文件到其他目录下的全部內容,希望文章能夠幫你解決所遇到的問題。

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