題目:復制一個文件夾下面的文件,使用InputStream和OutputStream方法;
思路:
1、創建兩個對象,將舊被復制的源文件file1和新復制過來的生成文件file2;
2、調用自定義復制方法;
自定義方法:a)舊被復制文件為空,不存在,不是文件;
b)新復制文件夾不存在,創建該路徑;
c)開始一個字節一個字節順序復制傳輸(系統自己保證順序傳輸)
3、加入程序運行時間;
package A_January;import java.io.*;/** * Created by Administrator on 17-1-19. */public class FileTest2 { public static void main(String[] args) { //實現一個文件的拷貝; //將源文件f1復制到f2目錄中; //文件存放目錄,真假不知;這里僅僅是路徑(目錄); // 存在不存在不一定,也有人被中介要求填寫信息,隨口編了一個假的地址; File file1=new File("E://玉置浩二 - 上を向いて歩こう.mp3"); File file2=new File("E://電影//☆中國電影//玉置浩二 - 上を向いて歩こう.mp3");//第2個文件路徑; long startTime=System.currentTimeMillis();//程序開始時間,用以記錄程序開始時間(按照毫秒計) copyFile(file1,file2);//調用下文中,自定義的copyFile方法; long endTime=System.currentTimeMillis();//程序結束時間;用以記錄程序結束時間; System.out.PRintln(endTime-startTime);//輸出時間差,計算程序運行時間; }//自定義copy復制方法;public static void copyFile(File fileFrom,File fileTo){ //如果源文件為空||不存在||不是文件夾; if (fileFrom==null||!fileFrom.exists()||!fileFrom.isFile()){ System.out.println("拷貝失敗"); return;//結束,跳出,返回; } File parent=new File(fileTo.getParent());//定義父目錄 // 如果父文件夾不存在; if (!parent.exists()){ //創建該文件夾; parent.mkdirs(); } FileInputStream fis=null; FileOutputStream fos=null; try { //為文件類型分配內存空間; fis=new FileInputStream(fileFrom); fos=new FileOutputStream(fileTo); //讀取 fis.read();//讀取一個字節 //全真循環; while(true){ //系統從輸入流讀取數據,然后向輸出流寫出數據; int data=fis.read(); fos.write(data); //當讀取的字節為-1時候,(系統默認-1是輸入流和輸出流的結尾),程序結束,停止全真循環; if(data==-1){ break; } } System.out.println("拷貝成功"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}復制成功后:
如果你在運行該軟件,再次復制,會報錯:
新聞熱點
疑難解答