1. 程式人生 > >IO流的學習--資料夾下檔案的複製

IO流的學習--資料夾下檔案的複製

package com.nick.IO;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 練習:複製資料夾下的所有內容到另一個資料夾中(程式碼建立目標資料夾)
 * e:\\io中的內容複製到d:\\io(程式碼建立)下
 * 
 * 基本思路
 * 1、動態生成目的資料夾的名字
 * 2、動態生成資料夾中的內容
 * 3、別把各種變數名弄混
 * 
@author nickY * */ public class CopyTest2 { public static void main(String[] args) { // TODO Auto-generated method stub copyDir(new File("e:\\io"), new File("d:\\")); } public static void copyDir(File src, File dest) { String srcFolderName = src.getName(); //得到io
File destFolderName = new File(dest, srcFolderName); //System.out.println(destFileName.getPath()); destFolderName.mkdirs(); //在d盤下建立了名為io的資料夾 //遍歷原始檔夾中的檔案 File[] srcFilesNames = src.listFiles(); for (File srcFileName : srcFilesNames) {
//System.out.println(file); 帶路徑的檔案 String fileName = srcFileName.getName(); //檔名 File destFilesNames = new File(destFolderName, fileName); //在目標資料夾下建立File物件 //進行復制 copyFile(srcFileName, destFilesNames); } } private static void copyFile(File srcFileName, File destFilesNames) { // TODO Auto-generated method stub BufferedInputStream bufferedInputStream = null; BufferedOutputStream bufferedOutputStream = null; try { FileInputStream fileInputStream = new FileInputStream(srcFileName); FileOutputStream fileOutputStream = new FileOutputStream(destFilesNames); bufferedInputStream = new BufferedInputStream(fileInputStream); bufferedOutputStream = new BufferedOutputStream(fileOutputStream); byte[] b = new byte[1024]; int len = 0; while((len = bufferedInputStream.read(b)) != -1) { bufferedOutputStream.write(b, 0, len); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { if(bufferedOutputStream != null) { bufferedOutputStream.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { if(bufferedInputStream != null) { bufferedInputStream.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }