java.lang.File类解析

java.io.File类代表系统文件名(路径和文件名)。
常见的构造方法:public File(String pathname),public File(String parent,String child)
File的静态属性:String separator(路径分隔符lunix,windows皆可用)
File对象可以访问文件的属性:
canRead(),canWrite(),exists(),isDirectory(),isFile(),isHidden(),lastModified()
length(),getName(),getPath()
File对像创建空文件或目录(两者皆不存在时)
createNewFile(),delete(),mkdir(),makdirs

例:

import java.io.*;

public class TestFile{
  public static void main(String args []){
    String separator = File.separator;
    String filename = "myfile.txt";
    String directory = "mydir1"+separator+"mydir2";
    File f = new File(directory,filename);
    if(f.exists()){
      System.out.println("文件名:"+f.getAbsolutePath());
      System.out.println("文件大小:"+f.length());
    }else{
      f.getParentFile().mkdirs();
      try{
        f.createNewFile();
      }catch(IOException e){
        e.printStackTrance();
      }
    }
  }
}

 

 

 

 


例:批量更改文件扩展名

import java.io.*;

public class BatchRenameFiles{

  public static void main(String args []){
 
    recurse(new File(args[0]),"-----+");
  }
 
  private static void recurse(File dirfile,String regex){
 
    String [] contents = dirfile.list();
   
    for(int i = 0; i < contents.length;i++){
   
      File childfile = new File(dirfile,contents[i]);
     
      if(childfile.isFile()){
        System.out.println(indent+contents[i]);
    System.out.println(indent+getFileType(contents[i]));
    
    String filename = childfile.getAbsolutePath();
    
    if(getFileType(contents[i].equals(“java”))){
    
          if(filename.lanstIndexOf(".") >= 0)
            filename = filename.substring(0,filename.lastIndexOf("."));
           
           childfile.renameTo(new File(filename+".txt"));
    }
      }else{
     
        System.out.println(indent+contents[i]+" : ");

    recurse(childfile, indent+"--+ ");
      }
     
    }
  }
 
  public static String getFileType(String fileUri){
  
  File file = new File(fileUri);
  String fileName = file.getName();
  String fileType = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length()) ;
  return fileType;
 }
}

 

 

 

 

 

 
例:递归列出目录下的所有文件及目录 

 

import java.io.*;

public class FileList{

  public static void main(String args []){
 
    File f = new File("d:/A");

    System.out.println(f.getName());
    tree(f,1);
  }
 
  public static void tree(File f,int level){
 
    String preStr = "";
   
    for(int i = 0;i < level;i ++){
   
      preStr += "------";
    }
 
    File[] childs = f.listFiles();
   
    for(int i = 0;i < childs.length;i++){
   
      System.out.println(preStr+childs[i].getName());
      if(childs[i].isDirectory()){
        tree(childs[i],level+1);
      }
    }
  
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值