자바 작업 파일 (클립) 의 몇 가지 코드

26865 단어 자바직장레저
일상 파일 작업 의 자바 함수, (콘 솔 로 출력 방법) 
1. 디스크 에서 가장 큰 공간 을 차지 하 는 파일 찾기 (폴 더)
주어진 경로 의 모든 정 보 를 가 져 옵 니 다: 경 로 는 "X:\\"또는 "X:/"형식 이 어야 합 니 다.
   
   
   
   
  1. /** 
  2.      *   
  3.      * @param absolutepath 
  4.      */ 
  5.     public void getPathInfo(String absolutepath){ 
  6.         String path=absolutepath; 
  7.         File file=new File(absolutepath); 
  8.         NumberFormat nf=NumberFormat.getInstance(); 
  9.         nf.setMaximumFractionDigits(2); 
  10.         long[] longNum=new long[100000]; 
  11.         System.out.println("【 】:"+path.substring(0,1)+"\r"+"【 】:"+file.getTotalSpace()/1000000.00D+"MB"+"   :"+nf.format(file.getTotalSpace()/1000000000.00D)+"GB"); 
  12.         System.out.println("【 】:"+nf.format(file.getFreeSpace()/1000000.00D)+"MB"+"   :"+nf.format(file.getFreeSpace()/1000000000.00D)+"GB"); 
  13.         int len=0;          //  
  14.         int isHidden=0;     //  
  15.         int isDirectory=0;  //  
  16.         int isFile=0;       //  
  17.         File[] files=file.listFiles();  // File  
  18.         for(int i=0;i
  19.             if(files[i].isDirectory()){ 
  20.                 isDirectory+=1
  21.             }else if(files[i].isFile()){ 
  22.                 isFile+=1
  23.             }else if(files[i].isHidden()){ 
  24.                 isHidden+=1
  25.             } 
  26.             len+=1
  27.         } 
  28.         System.out.println("【 】:"+len+" "); 
  29.         System.out.println("【 】:"+isDirectory+" "); 
  30.         System.out.println("【 】:"+isFile+" "); 
  31.         System.out.println("【 】:"+isHidden+" "+"\r"+"【 】:"); 
  32.         for(int i=0;i
  33.             if(files[i].isDirectory()){ 
  34.                 System.out.println("[ ]:"+files[i].getName()+ 
  35.                         "              :" 
  36.                         +nf.format((new FileTest().calcDirectorySize(new File(files[i].getAbsolutePath())))/1000000.00D)+"MB"); 
  37.                 longNum[i]=new FileTest().calcDirectorySize(new File(files[i].getAbsolutePath())); 
  38.             }else if(files[i].isFile()){ 
  39.                 System.out.println("[ ]:"+files[i].getName()); 
  40.             }else if(files[i].isHidden()){ 
  41.                 System.out.println("[ ]:"+files[i].getName()); 
  42.             } 
  43.         } 
  44.         System.err.println(" :"+new FileTest().compareLong(longNum)+"byte"); 
  45.     } 

이 코드 를 쓰 는 이 유 는 제 파 티 션 의 공간 이 거의 꽉 찼 고 안에 있 는 파일 과 폴 더 가 많아 서 도대체 어떤 공간 을 차지 하고 있 는 지 찾기 어렵 습 니 다. 그래서 저 는 간단 한 순환 으로 옮 겨 다 니 는 방법 으로 막후 의 진 범 을 찾 고 싶 습 니 다.)
위의 코드 는 다음 두 가지 핵심 코드 에 맞 춰 사용 해 야 합 니 다.
   
   
   
   
  1. /** 
  2.      *  ,  
  3.      * @param file 
  4.      * @return 
  5.      */ 
  6.     public long calcDirectorySize(File file){ 
  7.         long directorySize=0L; 
  8.         File[] files=file.listFiles(); 
  9.         for(int i=0;i
  10.             if(files[i].isDirectory()){ 
  11.                 directorySize+=calcDirectorySize(files[i]); 
  12.             }else
  13.                 directorySize+=files[i].length(); 
  14.             } 
  15.         } 
  16.         return directorySize; 
  17.     } 

   
   
   
   
  1. /** 
  2.      *  long  
  3.      * @param num 
  4.      * @return 
  5.      */ 
  6.     public long compareLong(long[] num){ 
  7.         long tmp=0L; 
  8.         for(int i=0;i1;i++){ 
  9.             if(num[i]>num[i+1]){ 
  10.                 tmp=num[i]; 
  11.                 num[i]=num[i+1]; 
  12.                 num[i+1]=tmp; 
  13.             } 
  14.         } 
  15.         return tmp; 
  16.     } 

2. 이름 을 바 꿀 파일 이 너무 많 습 니 다. 일괄 처리 방법 이 있 습 니까?
주어진 폴 더 의 모든 파일 이름 바 꾸 기
   
   
   
   
  1. /** 
  2.      *   
  3.      * @param files      , , :X:\\directoryname 
  4.      * @param startVal    
  5.      * @param endVal      
  6.      */ 
  7.     public void renameFile(String path,char startVal,char endVal){ 
  8.         File[] files=new File(path).listFiles(); 
  9.         String newName=null
  10.         int fileQuantity=0
  11.         int totalFileQuantity=0
  12.         int updatedFileQuantity=0
  13.         for(int j=0;j
  14.             fileQuantity+=1;    //  
  15.             String fileName=files[j].getName(); 
  16.             if(fileName.charAt(0)==startVal&&fileName.contains(endVal+"")){ 
  17.                 totalFileQuantity+=1;   //  
  18.             } 
  19.         } 
  20.         System.out.println(" ……"); 
  21.         //  
  22.         for(int i=0;i
  23.             String fileName=files[i].getName(); // ( ) 
  24.             if(fileName.charAt(0)==startVal){ 
  25.                 try
  26.                 //  
  27.                 newName=fileName.substring(fileName.indexOf(endVal)+1); 
  28.                 //  
  29.                 String prefix=files[i].getAbsolutePath().substring(0,files[i].getAbsolutePath().indexOf(files[i].getName())); 
  30.                 new File(files[i].toString()).renameTo(new File(prefix+newName)); 
  31.                 updatedFileQuantity+=1//   
  32.                 }catch(Exception e){ 
  33.                     System.err.println(" ……"); 
  34.                     e.printStackTrace(); 
  35.                 } 
  36.             } 
  37.         } 
  38.         System.out.println(" :"+fileQuantity+"  "); 
  39.         System.out.println(" :"+totalFileQuantity+"  "); 
  40.         System.out.println(" :"+updatedFileQuantity+"  "); 
  41.     } 

위의 코드 는 'x:\\\directory name' 과 같은 경로 형식 만 사용 할 수 있 습 니 다. 즉, 하나의 폴 더 를 일괄 처리 할 수 있 고 하나의 파일 을 조작 할 수 없습니다. 이 문 제 는 이름 을 바 꿀 하나의 파일 을 하나의 폴 더 에 넣 어서 해결 할 수 있 지만 의미 가 크 지 않 습 니 다. 이 함 수 는 주로 폴 더 안의 대량의 파일 을 일괄 적 으로 처리 하 는 데 사 용 됩 니 다.
PS: 이 함수 의 주요 방법 은 renameTo () 입 니 다. 이것 은 File 류 에 포 장 된 방법 입 니 다. 이 방법 은 저 로 하여 금 많은 정력 을 절약 하 게 합 니 다.
3. 하드디스크 의 상세 한 정보 보기
이 함 수 는 손 쉽게 쓴 것 이다.
   
   
   
   
  1. /** 
  2.      *   
  3.      */ 
  4.     public static void getHardDriverInfo(){ 
  5.         NumberFormat n=NumberFormat.getInstance();  //  
  6.         n.setMaximumFractionDigits(2);  //  
  7.         File[] fileLst=File.listRoots();// File  
  8.         int driverQuantity=0;           //  
  9.         double driverTotalSize=0L;      //  
  10.         double driverFreeSize=0L;       //  
  11.         for(int i=0;i// File  
  12.             if(fileLst[i].length()<=0){ // 0 
  13.                 System.err.println(" :"+fileLst[i].toString().substring(0,1)+"    "); 
  14.             }else
  15.                 System.out.println(" :"+fileLst[i].toString().substring(0,1
  16.                         +"    :"+n.format(fileLst[i].getTotalSpace()/1000000000.00D)+"(GB)" 
  17.                         +"   :"+n.format(fileLst[i].getFreeSpace()/1000000000.00D)+"(GB)" 
  18.                         +"    :"+FileTest.calcUtilization(fileLst[i].getTotalSpace(), fileLst[i].getFreeSpace())+"%"); 
  19.             } 
  20.             driverTotalSize+=fileLst[i].getTotalSpace();    //  
  21.             driverFreeSize+=fileLst[i].getFreeSpace();      //  
  22.             driverQuantity+=1;                              //  
  23.         } 
  24.         n.setMaximumFractionDigits(1); 
  25.         System.out.println(" :"+driverQuantity+"  "+"\r" 
  26.                 +" :"+n.format(driverTotalSize/1000000.00D)+"MB   :" 
  27.                 +n.format(driverTotalSize/1000000000.00D)+"(GB)"+"    :"+n.format(((driverTotalSize-driverFreeSize)/driverTotalSize)*100)+"%"+"\r" 
  28.                 +" :"+n.format(driverFreeSize/1000000.00D)+"MB   :" 
  29.                 +n.format(driverFreeSize/1000000000.00D)+"(GB)"+"    :"+n.format((driverFreeSize/driverTotalSize)*100)+"%"); 
  30.     } 

PS: 여기 서 말 하 는 하 드 디스크 는 바로 컴퓨터 에 있 는 하 드 디스크 입 니 다. 다 중 하 드 디스크 와 모 바 일 하 드 디스크 는 해 본 적 이 없습니다. USB 플래시 메모리 같은 것 은 해 본 적 이 없습니다. 안 됩 니 다. 루트 드라이브 만 검색 할 수 있 습 니 다.이 방법 은 매우 이상 하 다.
위의 함 수 는 아래 코드 와 결합 하여 실현 해 야 합 니 다.
   
   
   
   
  1. /** 
  2.      *    =(( - )/ )*100 
  3.      * @param totalsize 
  4.      * @param freesize 
  5.      * @return 
  6.      */ 
  7.     public static String calcUtilization(long totalsize,long freesize){ 
  8.         String percentage=null
  9.         NumberFormat nf=NumberFormat.getInstance(); 
  10.         nf.setMaximumFractionDigits(1); 
  11.         percentage=nf.format(((totalsize-freesize)/Double.parseDouble(String.valueOf(totalsize)))*100); 
  12.         return percentage; 
  13.     } 

PS: 이 방법 은 간단 하 죠?)
결론: 위의 세 가지 방법 을 통 해 저 는 File 류 의 많은 함수 와 속성 을 익 혔 습 니 다. 앞으로 만약 에 사용 해도 조급해 하지 않 을 것 입 니 다.)

좋은 웹페이지 즐겨찾기