IO流之檔案的複製,刪除,顯示位元組大小
阿新 • • 發佈:2018-12-31
檔案的複製
import java.io.FileInputStream; import java.io.FileOutputStream; public class Test { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("d:/微信圖片_20181215200356.jpg"); FileOutputStream fos = new FileOutputStream("H:/微信圖片_20181215200356.jpg"); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); fos.flush(); } fis.close(); fos.close(); System.out.println("over"); } catch (Exception e) { e.printStackTrace(); } } }
檔案的刪除
import java.io.File; public class Test2 { public static void main(String[] args) { File dir=new File("d://liu"); deleteFile(dir); } private static void deleteFile(File dir) { File[] files = dir.listFiles();//1,獲取該資料夾下的所有的檔案和資料夾 for (File file : files) {//2,遍歷陣列 if (file.isFile()) {//3,判斷是檔案直接刪除 file.delete(); } else { deleteFile(file); //4,如果是資料夾,遞迴呼叫 } } dir.delete();//5,迴圈結束後,把空資料夾刪掉 System.out.println("刪除完畢"); } }
檔案的大小
import java.io.File; import java.util.Scanner; public class Test1 { /** * @param args * 需求:1,從鍵盤接收一個資料夾路徑,統計該資料夾大小 */ public static void main(String [] args){ File dir = getDir(); System.out.println(getFileLength(dir)); } //從鍵盤接收一個資料夾路徑 public static File getDir(){ Scanner sc=new Scanner(System.in); System.out.println("請輸入一個資料夾路徑"); while(true){//2,定義一個無限迴圈 String line=sc.nextLine();//3,將鍵盤錄入的結果儲存並封裝成File物件 File dir = new File(line); if(!dir.exists()){ System.out.println("您錄入的資料夾路徑不存在,請輸入一個資料夾路徑:"); }else if(dir.isFile()){//4,對File物件判斷 System.out.println("您錄入的是檔案路徑,請輸入一個資料夾路徑:"); }else{ return dir;// 5,將資料夾路徑物件返回 } } } //統計該資料夾大小 public static long getFileLength(File dir){ long len=0;//1,定義一個求和變數 File[] subFiles=dir.listFiles();//2,獲取該資料夾下所有的檔案和資料夾listFiles(); for (File subFile:subFiles) { //3,遍歷陣列 if(subFile.isFile()){ len=len+subFile.length(); // 4,判斷是檔案就計算大小並累加 }else{ len=len+getFileLength(subFile);//5,判斷是資料夾,遞迴呼叫 } } return len; } }