黑马程序员-----File常见方法(创建/删除/获取/判断)--黑马视频

本文介绍了使用File类进行文件操作的基础方法,包括创建、删除、判断文件或文件夹的存在及属性,以及如何列出指定目录下的文件和文件夹。此外,还展示了如何遍历目录结构并收集.java文件,最后将收集到的文件信息写入到文本文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

package src.com.itheima.file;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
 * File类的常见方法:
 * 1 创建
 *  boolean createNewFile:
 *   在指定位置创建文件,如果该文件已经存在,则不创建,返回false.
 *   和输出流不一样,输出流对象建立时创建文件,如果文件存在,则会覆盖.
 * boolean mkdir():创建目录,创建文件夹
 * boolean mkdirs():创建多级文件夹.
 * 2 删除
 *  boolean delete:删除失败返回false.
 *  void  deleteOnExit():在程序退出时删除指定对象
 * 3 判断
 *  boolean exists():是否存在该文件(优先判断,当判断文件夹是否存在,或者文件是否存在时要先判断是否为空)
 * boolean isDirectory():判断是否是文件夹
 * boolean isFile():判断是否是文件
 * boolean isHidden():是否隐藏
 *
 * 4 获取信息
 * String getName();获取名称
 * String getParent():获取所在文件夹(绝对路径中的文件父目录)
 *        如果相对路径中有上一层目录,该目录就是返回结果
 * String getPath():获取路径(封装的什么路径就获得什么路径)
 * String getAbsolutePath():获取路径(获取文件绝对路径)
 * long  lastModify():最后一次修改时间
 * long length():长度
 * @author SUN
 *
 */
public class FileDemo {
 public static void main(String[] args) {
  //main();
  //fileMath();
  //test();
//  fileMath_7(new File("K:\\abc"));
  List list =new ArrayList();
  fileMath_8(new File("D:\\tjqs20140126\\exam\\src\\com\\itheima\\zijieliu"),list);
  fileMath_9(list);
  
 }
 /**
  * 获得文件夹下.java的文件,并存储到一个集合中,并且存入文件中
  */
 public static void fileMath_8(File f,List list){
  if(f.exists()){
   File []fs=f.listFiles();
   if(fs!=null){
    for(int i=0;i<fs.length;i++){
     if(fs[i].isFile()){
      if(fs[i].toString().endsWith(".java"))
      list.add(fs[i].toString());
     }else{
      fileMath_8(fs[i],list);
     }
    }
   }
  }
 }
 public static void fileMath_9(List list){
  BufferedWriter bw=null;
  
  try{
   bw=new BufferedWriter(new FileWriter("K:\\mulu.txt"));
   for(int i=0;i<list.size();i++){
    bw.write(list.get(i).toString());
    bw.newLine();
   }
   
  }catch(IOException e){
   throw new RuntimeException("写入失败");
  }finally{
   if(bw!=null){
    try {
     bw.close();
    } catch (IOException e) {
     throw new RuntimeException ("关闭输出流失败");
    }
   }
  }
 }
 /**
  * 删除个带内容的目录
  */
 public static void fileMath_7(File f){
  if(f.exists()){
   File [] fs=f.listFiles();
   System.out.println(fs.length);
   if(fs!=null&&fs.length!=0){
    for(int i=0;i<fs.length;i++){
     if(fs[i].isFile()){
      fs[i].delete();
     }else{
      fileMath_7(fs[i]);
     }
    }
   }else{
    f.delete();
   }
  }else{
   System.out.println("没有可删除的目录");
  }
 }
 /**
  * 列出指定目录下文件或者文件夹,包含子目录中的内容
  * 也就是列出指定目录下所有内容
  *
  */
 public static void fileMath_6(File f){
  System.out.println(f);
  if(f.exists()){
   File []fs=f.listFiles();
   if(fs!=null){
    for(int i=0;i<fs.length;i++){
     if(fs[i].isFile()){
      System.out.println(fs[i]);
     }else{
      fileMath_6(fs[i] );
     }
    }
   }else{
    System.out.println(f);
   }
  }
 }
 public static void fileMath_5(){
  File[] files=File.listRoots();
   for(int i=0;i<files.length;i++){
    sop(files[i]);
   }
   File f=new File("K:\\");
   String [] names=f.list();//调用list方法的file对象必须封装个目录,该目录还必须存在
   for(int i=0;i<names.length;i++){
    System.out.println(names[i]);
   }
 }
 public static void fileMath_4(){
  File f=new File("K:\\abc\\file.txt");
  sop("name:"+f.getName());
  sop("parent:"+f.getParent());
  sop("path:"+f.getPath());
  sop("绝对路径:"+f.getAbsolutePath());
  sop("file路径:"+f.getAbsoluteFile());
  sop("time:"+f.lastModified());
  sop("length:"+f.length());
  
 }
 public static void fileMath_3(){
  File f=new File("K:\\abc\\file.text");
  try{f.createNewFile();
  }catch(Exception e){}
  //记住:在判断文件对象是否是文件时,必须要先判断该文件对象封装的内容是否存在
  //通过exists判断
  boolean b=f.exists();sop(b+"");
  b=f.isDirectory();sop(b+"");
  b=f.isFile();sop(b+"");
  b=f.isDirectory();
  sop(b+"");
 }
 public static void fileMath_2(){
  File f=new File("K:\\file.txt");
  f.deleteOnExit();
  try {
   f.createNewFile();
   
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }
 public  static  void fileMath(){
  File f=new File("K:\\file.txt");
  try {
   sop(""+f.createNewFile());
   f.deleteOnExit();
   sop(""+f.delete());
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 //创建File对象
 public static void main() {
  //将a.txt封装成File对象,可以将已有的和未出现的文件或文件夹封装成file对象
  File f1=new File("a.txt");
  
  //第二种方式
  File f2=new File("K","demo.txt");
  //第三种方式
  File D=new File("c");
  File f3=new File(D,"abc.txt");
  //第四种  跨平台 分隔符,再linux下也可以用
  File f4=new File("k"+File.separator+"abc"+File.separator+"1.txt");
  //只打印相对路径,封装的什么路径打印什么
  sop(f2);
  
 }
 public static void sop(Object obj){
  System.out.println(obj);
 }
 public  static void test(){
  File  f=new File("K:\\demo.txt");
  File f2=new File("K:\\abc");
  
  System.out.println(f2.mkdir());
  f.deleteOnExit();
  System.out.println(f.exists());
  try {
   sop(""+f.createNewFile());
  } catch (IOException e) {
   throw new RuntimeException("文件创建失败");
  }
  System.out.println(f.exists());
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值