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);
            }
    
    
        }
    }
  • 相关阅读:
    label 选择: soft label or hard label?
    预训练模型 | MASS:更适合seq2seq类任务
    文本相似度计算/文本比较算法
    论文阅读 | Is BERT Really Robust? A Strong Baseline for Natural Language Attack on Text Classification and Entailment
    论文阅读 | Lite Transformer with Long-Short Range Attention
    预训练模型 | ELECTRA: Efficiently Learning an Encoder that Classifies Token Replacements Accurately
    Transformer 及其家族( Transformer-XL, Reformer... )
    java线程池01-ThreadPoolExecutor构造方法参数的使用规则
    快速排序算法
    mysql(4)—— 表连接查询与where后使用子查询的性能分析。
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/8397926.html
Copyright © 2011-2022 走看看