Java--File I/O

2017-06-13  本文已影响37人  年少懵懂丶流年梦

java.io.File类用于表示文件(目录)。用来将文件或者文件夹封装成对象。
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问

File类是IO包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操纵文件,通过调用File类提供的各种方法,能够完成创建、删除文件,重命名文件,判断文件的读写权限及文件是否存在,设置和查询文件的最近修改时间等操作。

1. File类

1、创建File对象

构造方法:

File(File parent, String child)      // 根据 parent 抽象路径名和 child 路径名字符串创建一个新File实例。

File(String pathname)      // 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。

File(String parent, String child)       // 根据 parent 路径名字符串和 child 路径名字符串创建一个新File实例。

File(URI uri)         // 通过将给定的file:URI 转换为一个抽象路径名来创建一个新的File实例。
2、操作File的方法

1、访问文件名相关的方法:

String getName()            // 取得文件名
String getPath()            // 取得文件路径
File getAbsoluteFile()      // 获得该File对象的绝对路径
String getAbsolutePath()        // 获得该File对象的绝对路径名
String getParent()          // 获得父级目录名 
boolean renameTo()      // 重命名

2、文件检测相关方法:

boolean exists()            // 判断文件是否存在
boolean canExecute()        // 判断文件是否可执行
boolean canWrite()          // 判断是否可写
boolean canRead()           // 判断是否可读
boolean isDirectory()       // 判断是否是目录
boolean isFile()            // 判断是否是文件
boolean isHidden()          // 判断是否是隐藏文件
boolean isAbsolute()        // 判断是否是绝对路径名

3、获取常规文件信息:

long lastModified()             // 返回文件最后修改时间
long length()                   // 返回的文件长度

4、文件操作相关方法:

boolean createNewFile()         // 创建新文件,创建成功返回true,否则返回false
boolean delete()                // 删除文件
static File createTempFile(String prefix, String suffix)  //  在默认临时文件目录中创建一个空文件,
             使用给定前缀和后缀生成其名称。suffix 参数可以为 null,这时将使用默认的后缀“.tmp”
static File createTempFile(String prefix, String suffix, File directory)  // 在指定目录 directory 中创建一个新的空文件,
            使用给定的前缀和后缀生成其名称。
void deleteOnExit()     // 当Java虚拟机终止时删除File对象所对应的文件和目录

5、目录操作相关的方法:

boolean mkdir()         // 创建一级目录
boolean mkdirs()            // 创建多级目录(包括所有必需但不存在的父目录)
String[] list()          // 列出当前下所有文件和路径,返回String数组
File[] listFiles()      // 列出当前下所有文件和路径,返回File数组
static File[] listRoots()  // 列出磁盘所有的根路径

Windows中使用的路径分割符

3. 文件过滤器

在File类中:

String[] list(FilemaneFilter filter)  // 返回一个字符串数组,这些字符串
              指定此抽象路径名表示的目录中满足指定过滤器的文件和目录
File[] listFiles(FileFilter filter)
File[] listFiles(FilemaneFilter filter)

FilemaneFilter 接口中只有一个抽象方法:

boolean accept(File dir, String name)

实现accept()方法,就是指定自己的规则,指定哪些文件应该由list()列出。

public class FilenameFilterDemo {
    
    public static void main(String[] args) {
        File file = new File("D:/eclipse/workspace/ThreadDemo/");
        // 列出路径下的所有*.java文件以及文件夹
        String[] nameList = file.list(new FilenameFilter() {
            
            @Override
            public boolean accept(File dir, String name) {
                if (name.endsWith(".java") || new File(name).isDirectory()) {
                    return true;
                }
                return false;
            }
        });
        
        for (String name : nameList) {
            System.out.println(name);
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读