File类的使用方法

创建方法

1.boolean createNewFile() 不存在返回true 存在返回false

2.boolean mkdir() 创建目录

3.boolean mkdirs() 创建多级目录

删除方法

1.boolean delete()

2.boolean deleteOnExit() 文件使用完成后删除

判断方法

1.boolean canExecute()判断文件是否可执行

2.boolean canRead()判断文件是否可读

3.boolean canWrite() 判断文件是否可写

4.boolean exists() 判断文件是否存在

5.boolean isDirectory()

6.boolean isFile()

7.boolean isHidden()

8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断

获取方法
1.String getName()

2.String getPath()

3.String getAbsolutePath()

4.String getParent()//如果没有父目录返回null

5.long lastModified()//获取最后一次修改的时间

6.long length()

7.boolean renameTo(File f)

8.File[] liseRoots()//获取机器盘符

9.String[] list()

10.String[] list(FilenameFilter filter)

File[] listFiles()

File[] listFiles(FilenameFilter filter)

递归删除文件夹下的所有文件
public static void main(String[] args) {
 File file = new File("D:\\DG");  
   selFiles(file); 
   }

   public static void selFiles(File pathfile){
    if(pathfile.isDirectory()){
      File[] files = pathfile.listFiles();
       for (File file : files) {
     if(file.isDirectory()){
      selFiles(file);
     }else if(file.isFile()){
      file.delete();
     }
    }
    }else{
     pathfile.delete();
    }
   }

递归判断是文件还是文件夹

ublic class Test3 {
 public static void main(String[] args) {
  show(new File("D:\\"));
 }
 public static void show(File file){
  if (file.isFile()) {
   System.out.println(file.getAbsolutePath());
  }else if(file.isDirectory()){
   File[] arr = file.listFiles();
   if (arr!=null&&arr.length>0) {
    for (int i = 0; i < arr.length; i++) {
     show(arr[i].getAbsoluteFile());
    }
   }
  }
 }
}

递归目录下所有的文本文件以(.bat结尾的文件)
public static void main(String[] args) {
File file =new File("D:\\DG");
getAllFilePaths(file);
}

private static void getAllFilePaths(File file){
File[] files = file.listFiles();
for (File f : files) {
if(f.isFile()&&f.getName().endsWith(".bat")){
System.out.println(f.getAbsolutePath());
}else if(f.isDirectory()){
       getAllFilePaths(f.getAbsoluteFile());
      }
      }
      }


在指定时间内删除指定的目录文件
public class Test2 {
     public static void main(String[] args) throws ParseException {
         Timer t = new Timer();
      String time="2019-04-19 09:00:00";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      Date date = sdf.parse(time);
      t.schedule(new DeleteFloder(), date);
      }
      }


class DeleteFloder extends TimerTask{
  @Override
 public void run() {
  File srcFolder = new File("D:/DG");
  deleteFolder(srcFolder);
  }
  
public  void deleteFolder(File srcFolder){
   File[] listFiles = srcFolder.listFiles();
   for (File file : listFiles) {
    System.out.println(file.getName()+"文件即将被删除");
    if(!file.delete()){
     deleteFolder(file);
    }
  }
  System.out.println(srcFolder.getName()+"文件夹即将被删除"); 
  srcFolder.delete();
  }
  }


//递归 file类勒出所有指定目录下的.jpg的图片
public class Test3 {
    public static void main(String[] args) {
  listFiles("D:\\DG", ".jpg");
 }

 public static void listFiles(String path,String suffixName){
 File file = new File(path);
       if(file.isFile()){
        //截取文件名后缀,和suffixName比较
         String fileName = file.getName();
         int index = fileName.lastIndexOf(".");
         //截取下来的后缀名
         String str = fileName.substring(index);
         if(suffixName.equals(str)){
          System.out.println(file.getAbsolutePath());
         }

  }else{
        //如果是目录看下一级
        File[] array = file.listFiles();
        if(array!=null&&array.length>0){
         for (int i = 0; i < array.length; i++) {//得到每一个子目录文件
       listFiles(array[i].getPath(), suffixName);
    }
        }
}
}
}

从键盘输入一句话,存到D:\DG\char.txt中   |   //从文件读取信息,在控制台打印信息
public class FileWriterDemo {
    //从键盘输入一句话,存到D:\DG\char.txt中
  @SuppressWarnings("resource")
 public static void main(String[] args) throws IOException {
  System.out.println("输入一句话");
  Scanner sc = new Scanner(System.in);
  String info = sc.next();
  //先创建对象
  File file = new File("D:\\DG\\char.txt");
  File parent = file.getParentFile();
  if(!parent.exists()){
   parent.mkdirs();
  }

if(!file.exists()){
   file.createNewFile();
  }
  
 //创建文件流对象
  FileWriter writer = new FileWriter(file, true);//true表示追加
  //写输入到文件中
  writer.write(info);
  //关闭流
  writer.close();
  sc.close();
 }
}


  //和文件建立流通道,输入,字符 创建流对象
  FileReader reader = new FileReader(file);
  //读取数据
  //一次读一个字符,循环
  //一次读一个字符数组
  //一次读多个字符,保存到字符数据的某一部分

char[] cbuf = new  char[100];
  int len =-1;
  while((len=reader.read(cbuf))!=-1){
     for (int i = 0; i < len; i++) {
    System.out.println(cbuf[i]);
   }
    String str = new String(cbuf,0,len); 
    System.out.println(str);
}
 //关闭流
  reader.close();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值