• File


    当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作。

    当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作。

    因此我们把这种输入和输出动作称为IO操作。

     

     

    //相对路径:相对本工程的路径

           File file=new File("src");

          

           //获取绝对路径

           file.getAbsolutePath();

          

           //获取文件夹名

           file.getName();

           //获取该文件的字符串路径

           file.getPath();

           //获取这文件夹的长度

           file.length();

    新建文件:

           //1.不能创建同名文件

           //2.不能创建文件夹

           File file=new File("D:\text\c.JaVa");

           file.createNewFile();//返回一个布尔值,判断是否创建成功

          

    创建文件夹:

           file.mkdir();

    创建多级文件夹

           file.mkdirs();

       

    //判断该File指定的文件或文件夹是否存在

    file.exists();

     

        //判断该File指定的文件或文件夹是否是文件夹(目录)

        file.isDirectory();

     

        //判断该File指定的文件或文件夹是否是是文件

        file.isFile();

       

       

        //删除文件或文件夹

        file.delete();

    File.pathSeparator  路径分隔符 

    Windows系统 ;  Linux系统 :

    listFiles()方法

    list() 返回一个字符数串组,为指定路径中的文件名

    listFiles() 返回一个所有路径名的File[]

    注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件

    1,指定的目录必须是存在的,

    2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException

     

    文件过滤器

    listFiles(FileFilter  filter)重载方法:返回路径名File[],并且符合括号中指定过滤的文件和目录

    FileFilter 接口

    方法:accept(File pathname);测试指定路径名是否包含在指定文件中,accept方法接受一个参数,这个参数就当前文件或文件夹对象

    返回值  boolean

    需要自定义类接受FileFilter接口

    列: File file=new File("D:\text");

           File[] files=file.listFiles(new MyFileFilter());

           for(File f:files){

               System.out.println(f);

           }

    public class MyFileFilter implements FileFilter{

            public boolean accept(File pathname){

              

               return pathname.getName().toLowerCase().endsWith(".java");

            }

    }

    getName()获取文件名,toLowerCase(),大写转为小写,endsWith(".java");判断以什么结尾(“.java”);

     

     

     

     

    递归

    递归,指在当前方法内调用自己的这种现象

    注意:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

    在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

    递归打印指定文件下的所有子目录:

     

    File file=new File(“D:\text”);

    public static void geta(File file){

    File[] files=file.listFiles(new My());

    for(File f:files){

               if(f.isDirectory()){//判断如果是文件夹就继续调用

                  geta(f);

               }

               if(f.isFile()){//判断是文件 打印

                  System.out.println(f);

               }

                 

    }

    }

    public class My implements FileFilter{

        public boolean My(File pathname){

           if(pathname.isDirectory()){

               return true;

           }

           return pathname.getName().toLowerCase().endsWith(".txt");

        }

    }

  • 相关阅读:
    JSP动作元素<jsp:include>和<jsp:param>的搭配使用
    js去除字符串中的空格
    js 判断字符串中是否包含某个字符串(转载)
    window+R
    eclipse中ctrl+K失效
    图片转二进制——各种方法汇总(转载)
    spring mvc使用ModelAndView时发生No request handling method with name '方法 名' in class [类名]的错误
    类中main函数的快捷创建
    java中的中文字符转码技术
    SPOJ QTREE6
  • 原文地址:https://www.cnblogs.com/hhthtt/p/10632543.html
Copyright © 2020-2023  润新知