zoukankan      html  css  js  c++  java
  • java File类

    File对象可以操作文件与目录,创建File对象并不一定是创建了新的文件或目录,而是表示某文件或目录。

    File file = new File("data.txt");  以当前目录下data.txt文件,创建一个File对象。但当前目录下并不一定存在data.txt文件。

    System.out.println(file.exists()); 输出结果为false,当前目录下不存在data.txt文件。

    File的createNewFile()函数可以创建data.txt文件

    file.createNewFile();
    System.out.println(file.exists());       输出结果为true

    File类的示例如下:

    import java.io.*;
    
    public class FileTest {
    
        public static void main(String[] args) throws IOException{
    
            // 以当前目录创建一个File对象,file表示当前目录
            File file = new File(".");
            // 输出file表示的文件或目录名
            System.out.println(file.getName());   // .
            // 判断file表示的是否为文件
            System.out.println(file.isFile());    // false
            // 判断file表示的是否为目录
            System.out.println(file.isDirectory()); // true
            // file表示的文件或目录的绝对路径
            System.out.println(file.getAbsoluteFile()); // D:java.
            // 判断file表示的文件或目录是否存在
            System.out.println(file.exists());          // true
    
            // 返回file表示的目录下的所有文件或目录
            String[] list = file.list();
            for (String str:list) {
                System.out.println(str);
            }
    
    
        }
    }

    File的list()方法可以接收一个FilenameFilter类参数,通过该参数可以得到只符合条件的文件或目录。

    FilenameFilter是一个接口,通过实现其包含的accept(File dir, String name)方法,来筛选指定目录下符合条件的文件或目录。

    accept(File dir, String name)   dir表示指定目录,name表示指定目录下的文件名或目录名,通过对name的操作来筛选指定目录下符合条件的文件或目录。

    例1.如得到file表示目录下的.java文件,代码如下:

    import java.io.*;
    
    public class FileTest {
    
        public static void main(String[] args) throws IOException{
    
            // 以当前目录创建一个File对象,file表示当前目录
            File file = new File(".");
    
            String[] list = file.list(new MyFilter());
            for (String str:list) {
                System.out.println(str);
            }
        }
    }
    
    
    class MyFilter implements FilenameFilter {
    
        // 实现accept方法,若name以.java结尾返回true
        public boolean accept(File dir, String name) {
    
            return name.endsWith(".java");
        }    
    }

    也可以使用匿名类来实现

    import java.io.*;
    
    public class FileTest {
    
        public static void main(String[] args) throws IOException{
    
            // 以当前目录创建一个File对象,file表示当前目录
            File file = new File(".");
    
    
            String[] list = file.list(new FilenameFilter() {
    
                public boolean accept(File dir, String name) {
                    return name.endsWith(".java");
                }
            }
                    );
            for (String str:list) {
                System.out.println(str);
            }
        }
    }

    也可以使用Lambda表达式来实现

    String[] list = file.list((dir, name) -> name.endsWith(".java"));

    例2.  得到file表示目录下的.java文件及目录

    import java.io.*;
    
    public class FileTest {
    
        public static void main(String[] args) throws IOException{
    
            // 以当前目录创建一个File对象,file表示当前目录
            File file = new File(".");
    
    
            String[] list = file.list(new FilenameFilter() {
    
                public boolean accept(File dir, String name) {
                    return name.endsWith(".java") || new File(name).isDirectory();
                }
            }
                    );
            for (String str:list) {
                System.out.println(str);
            }
    
    
        }
    }
  • 相关阅读:
    没有可用软件包 libgdiplus 解决方法
    aspnetcore2.1 部署到docker (访问出现404)
    pagination.js 使用
    System.DllNotFoundException: Unable to load DLL 'libgdiplus': The specified module could not be found.
    aspnetcore 日志 serilog-aspnetcore
    supervisor 安装配置
    HttpClient 上传图片
    C#如何调用C++(进阶篇)
    netcore使用EFcore(第一个实例)
    .NET-高并发及限流方案
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/8397926.html
Copyright © 2011-2022 走看看