Java-File类的介绍

  • 文件管理的概述
    • Java中的对文件的管理,通过java.io包中的File类实现
    • Java中文件的管理,主要是针对文件或是目录路径名的管理
      • 文件的属性信息
      • 文件的检查
      • 文件的删除等
      • 不包括文件的访问
  • File类
    • File类的构造方法
File  变量名 = new  File(String pathname) ;
  • 通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例
File f1 = new File (“d:/temp/abc.txt”);
  • File类的构造方法
File  变量名 = new  File(String pathname) ;
  • 通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例
File f1 = new File (“d:/temp/abc.txt”);
  • File类的构造方法
File  变量名 = new  File(URI uri) ;
  • 通过将给定File的uri转换成抽象路径名来创建一个新 File 实例
File f2 = new File(“abc.txt”); 
  • File类的构造方法
File  变量名 = new  File(String parent,Stirng child) ;
  • 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例
File f3 = new File(“d:/temp”,“abc.txt”); 
  • File类的构造方法
File  变量名 = new  File(File parent,Stirng child) ;
  • 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例
File f = new File(“d:/temp”);
File f4 = new File(f,“abc.txt”);
  • File类
方法 含义
boolean createNewFile() 当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。
static File createTempFile(String prefix,String suffix) 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称
static File createTempFile(String prefix,Stirng suffix,File directory) 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称
boolean exists( ) 测试此抽象路径名表示的文件或目录是否存在
boolean delete( ) 删除此抽象路径名表示的文件或目录
boolean equals(Object obj) 测试此抽象路径名与给定对象是否相等
boolean canRead() 测试应用程序是否可以读取此抽象路径名表示的文件
boolean canWrite() 测试应用程序是否可以修改此抽象路径名表示的文件
String[] list( ) 返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组
String getAbsolutePath( ) 返回抽象路径名的绝对路径名字符串
String getName( ) 返回由此抽象路径名表示的文件或目录的名称,不包括路径名称
String getPath( ) 将此抽象路径名转换为一个路径名字符串
File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件
boolean renameTo(File dest ) 重新命名此抽象路径名表示的文件
long length( ) 返回由此抽象路径名表示的文件的大小,以byte为单位
boolean mkdir( ) 创建此抽象路径名指定的目录
boolean mkdirs( ) 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。注意,如果此操作失败,可能已成功创建了一些必需的父目录

文件管理——Java7特性

  • NIO 2
    • 在Java7之前,文件的操作一向都比较不便,Java7推出了全新的NIO 2 API,包括java.nio.file包,以及相关的java.nio.file.attribute包,全面支持了文件IO以及对默认文件系统的访问,使得在java.nio.file包下使用Path、Paths、Files、WatchService、FileSystem等常用类型可以很好的简化开发人员对文件管理的编码工作。
  • NIO 2
    • Path接口常用方法如下:
方法名称 方法返回类型 方法描述
getNameCount() int 获取当前文件节点数
getFileName() java.nio.file.Path 获取当前文件名称
getRoot() java.nio.file.Path 获取当前文件根目录
getParent() java.nio.file.Path 获取当前文件上级关联目录
Path path = Paths.get("C:/windows");
System.out.println("文件节点数:" + path.getNameCount());
System.out.println("文件名称:" + path.getFileName());
System.out.println("文件根目录:" + path.getRoot());
System.out.println("文件上级关联目录:" + path.getParent());
  • NIO 2
    • Files类型常用方法如下:
方法名称 方法返回类型 方法描述
createFile() java.nio.file.Path 在指定的目标目录创建新文件
delete() void 删除指定目标路径的文件或文件夹
copy() java.nio.file.Path 将指定目标路径的文件拷贝到另一个文件中
move() java.nio.file.Path 将指定目标路径的文件转移到其他路径下,并删除源文件
try {
    Files.copy(Paths.get("C:/a.txt"), Paths.get("C:/b.txt"));
} catch (IOException e) {
    e.printStackTrace();
}
  • NIO 2
    • 使用WatchService类型实现文件监控
/*监控目标路径 */
Path path = Paths.get("C:/");
try {
    /* 创建文件监控对象 */
    WatchService watchService = FileSystems.getDefault().newWatchService();
    /* 注册文件监控的所有事件类型 */
    path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE,
            StandardWatchEventKinds.ENTRY_DELETE,
            StandardWatchEventKinds.ENTRY_MODIFY);
    /* 循环监测文件 */
    while (true) {
        WatchKey watchKey = watchService.take();
        /* 迭代触发事件的所有文件 */
        for (WatchEvent event : watchKey.pollEvents())
            System.out.println(event.context().toString() + " 事件类型:"
                    + event.kind());
        if (!watchKey.reset())
            return;
    }
} catch (Exception e) {
    e.printStackTrace();
}

示例代码:

package 文件类;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestFile {

    public static void main(String[] args) {
        //1. 如何创建File对象
        
        File file = new File("D:\\a.txt");
        //2. File类的方法有哪些?
        if(!file.exists()) {
            try {
                file.createNewFile();//文件不存在就创建
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        File b = new File("D:\\a\\b\\c");
        if(!b.exists()) {
            b.mkdirs();//创建多级目录,创建单级目录则为mkdir()
        }
        //3.
        File c = new File("file","abc.txt");//此处必须保证项目根目录有file文件夹
        if(!c.exists()) {
            try {
                c.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println("c.canRead(): " + c.canRead());//是否可读
        System.out.println("c.canWrite(): " + c.canWrite());//是否可写
        System.out.println("c.getAbsolutePath(): " + c.getAbsolutePath());//绝对路径
        System.out.println("c.exists(): " + c.exists());//是否存在
        System.out.println("c.getName(): " + c.getName());//文件名
        System.out.println("c.lastModified(): " + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").
                format(new Date(c.lastModified())));//最后修改时间
    }
}

拓展知识:

Java File类 | 菜鸟教程

Java File类(文件操作类)详解

Java中File类的常用所有方法及其应用

Java File类-易百教程

Java 日期时间-菜鸟教程

以上就是我关于 Java-File类的介绍 知识点的整理与总结的全部内容,另附源码


分割线


博主为咯学编程:父母不同意学编程,现已断绝关系;恋人不同意学编程,现已分手;亲戚不同意学编程,现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏,金额不限。。。

你可能感兴趣的:(Java-File类的介绍)