黑马程序员--io之File类

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——

io中文件的操作

File f=new File(“c:/a”);

1:关于文件的操作,文件的创建:createNewFile ,文件的删除:delete 返回的值都是boolean
2:判断文件是否存在 : exists() 返回boolean ,创建文件夹 : mkdir() 创建一级目录 mkdirs() 创建多个目录
3:判断是否是文件 : isFile() 返回boolean 判断是否是文件夹 : isDirectory() ff.isHidden()判断文件是否隐藏
4:windows中删除文件的原理,如果文件夹里有文件,先删除文件,然后删除文件夹。

package com.itheima1.www;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

/**
*
* @author myluo
*
*/
public class IOFile {

public static void main(String[] args) {

         //  method1();
          // method2();
        //   method3();
        //  method4();
    File    f=new  File("e:/kankan");
    //method5(f);
     int  i=-1;
    // method6(f,i);
    method6(f);
}



//文件的删除,windows删除文件的原理,如果文件夹里有文件,先删除文件,然后删除文件夹。。。
private static void method6(File f) {
    // TODO Auto-generated method stub
     //判断文件是否存在
        if (f.exists()) {
               File   []   file=f.listFiles();
            for (File ff : file) {
                //判断是否是文件夹
                if (ff.isDirectory()) {
                          method6(ff);
                }else{
                    //如果是文件就删除。。
                    ff.delete();
                }

            }

            //文件删除完,就删除文件夹
            f.delete();

        }
}


//遍历文件 打印层级关系
private static void method6(File   f,int  i) {
    // TODO Auto-generated method stub
          i++;
          File  []   file=f.listFiles();
          for(File  ff:  file){
                     if(ff.isDirectory()){
                                method6(ff,i);
                     }
                    execute(getNbsp(i)+ff.getName());
          }
}

//打印空格
 private static  String   getNbsp(int  num){
     StringBuffer   sb=new   StringBuffer(); 
     for(int  i=0;i<num;i++){
              sb.append("|---");
     }
     return   sb.toString();
 }

//用递归的方法遍历文件  
private static void method5(File   f) {
    // TODO Auto-generated method stub
    File  []   file=f.listFiles();
    int  i=0;
    for(int  j=0;j<file.length;j++){
             i++;
               if(file[j].isDirectory()){
                       method5(file[j]);
               }else{
                   execute(file[j].toString());
               }

    }


}


//根据文件的后缀名过滤文件(filter),
private static void method4() {
    // TODO Auto-generated method stub
          File   f=new  File("E:\\迅雷下载");
         String  []  str= f.list(new FilenameFilter(){

            @Override
            //file  文件的目录    name   文件的名字
            public boolean accept(File dir, String name) {
                // TODO Auto-generated method stub
                return name.endsWith(".exe");//文件是否符合此后缀?  true: false;
            }

          });


         for(String   ss:str){
              execute("doc==="+ss);
         }
       execute("=====================================================");
       //获取指定文件夹下的文件   1:File    f=new  File("c:/");        String  []   str=f.list();
                                     //方法2:   File    f=new  File("c:/");     f.
       File   fe=new  File("c:/");
       File    []   ff=fe.listFiles();
       for(File   d:ff){
                 execute("e盘下所有文件:"+d+"==="+d.length());
       }

}

//文件信息的获取
private static void method3() {

         File   f1=new   File("f:/a.txt");
         execute("获取文件名字:"+f1.getName());
         execute("获取文件父目录:"+f1.getParent());
         execute("获取文件的绝对流经:"+f1.getAbsolutePath());
         execute("获取文件的大小:"+f1.length());
         File  f2=new  File("f:/a1.txt");
         execute("修改文件的名:"+f1.renameTo(f2));
    //获取所有磁盘
       File   []  str=  f1.listRoots();
         for(File    a: str ){
             execute("磁盘:"+a);
             File  f=new  File(a.toString());
             String[] list = f.list();

             execute("=========================================================");

         }
         //获取指定文件下的所有文件
        File  f12=new  File("F:/BaiduYunDownload/Java高级视频_IO输入与输出/第三部分");
        String[] list = f12.list();
        for(String  s:list){
            execute("文件:"+s);
        }

        File   fl=new  File("f:/");
       String   []  st= fl.list();
        for(String   ss:st){
                   execute("f==="+ss);
        }
}


//关于文件的操作,文件的创建:createNewFile   ,文件的删除:delete   返回的值都是boolean  
//判断文件是否存在   :   exists()  返回boolean     ,创建文件夹  :  mkdir()  创建一级目录  mkdirs() 创建多个目录
//判断是否是文件  :  isFile()   返回boolean     判断是否是文件夹   :  isDirectory()
private static void method2() {
    // TODO Auto-generated method stub

    File   f7=new  File("E:/a/luo.txt");
    try {
        f7.createNewFile();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    boolean  is=f7.exists();
    boolean   fl=f7.isFile();
    boolean flg=f7.isDirectory();
    if (is) {
        if (fl) {
            execute("是文件");
        } else {
            execute("不是文件");
        }
        if (flg) {
            execute("是文件夹");
        } else {
            execute("不是文件夹");
        }
    }
    File  f1=new    File("e:/abc/ab/a");

      boolean  flag5=f1.mkdirs();
     if(flag5){
           execute("文件夹创建成功");
     }else{
         execute("文件夹创建失败");
     }

          File  file=new   File("fei.txt");
          //创建文件result
          boolean flag;
          //删除文件result
          boolean  flag2;
          //文件是否存在result
          boolean   flag3;
          try {
            flag = file.createNewFile();
            if(flag){
                        execute("文件创建=="+true);  
              }else{
                       execute("文件创建=="+false);
              }
            File  file2=new   File("xx.txt");
            flag3=file2.exists();
            if(flag3){
                  execute("文件存在");
            }else{
                execute("文件不存在");
            }


            flag2=file.delete();
            if(flag2){
                  execute("删除成功");
            }else{
                execute("删除失败");
            }




        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }


}

//方法一    文件与file类的出现弥补了流的不足,流是用来操作数据的,不能操作文件,file可以弥补流的不足
private static void method1() {
    // TODO Auto-generated method stub
             //file的创建方式1
             File  file1=new  File("luo.txt");
             //file的创建方式2
             File   file2=new  File("E:/a","fei.txt");
             //file的创建方式3
             File   file3=new  File("E:/a");
             File   file4=new  File(file3,"xiao.txt");
             execute(file1+" : "+file2+ " :  "+file4);

             //分隔符的跨平台
             File  file5=new  File("e:/a/luo.txt");
             File  file6=new  File("e:"+File.separator+"a"+File.separator+"luo.txt");

             execute(file5+"======="+file6);
}

 private   static   void  execute(String   str){
     System.out.println(str);
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值