首页 > 编程语言 >(一)Java中的IO操作—— File类

(一)Java中的IO操作—— File类

时间:2023-07-04 15:23:11浏览次数:59  
标签:文件 Java IO File System file println out

一、File类

在系统中用户通过文件系统所提供的系统调用实施对文件的操作。

最基本的文件操作有: 创建文件、删除文件、读文件、写文件、截断文件和设置文件的读/写位置。

在Java中使用File类来作为目录或者文件的表示形式,也就是说我们想要表示一个文件,构造一个File对象即可。

构造方法

File 类常用以下几种方式来创建一个File对象。

注意:new File只是在java中描述这么一个文件,并不代表这个文件真的存在,所以我们可以使用File类的API来进行判断、创建、删除等操作。

    @Test
    public void fileTest1() throws IOException, URISyntaxException {
        // 方式一: 根据指定的父路径和子路径字符串创建一个File对象。
        // File(String parent, String child)
        File file = new File("D:\\Snow","test.txt");

        //方式二:通过将给定路径名字符串来创建一个File对象。
        // File(String pathname)
        String fileName = "D:" + File.separator + "Snow" + File.separator + "test1.txt";
        File file1 = new File(fileName);
        file1.createNewFile();

        //方式三:根据指定的父File对象和子路径字符串创建一个File对象。
        // File(File parent, String child)
        File parent = new File("D:\\Snow");
        File file2 = new File(parent,"test2.txt");

        //方式四:它根据指定的URI创建一个File对象
        // File(URI uri)
        URI uri = new URI("file:///D://Snow//test3.txt");
        File file3 = new File(uri);
    }

分隔符

File 中还包括两个分隔符,这两个是File类中给我定义好的,会根据使用的操作系统自动获取当前系统所能使用的分隔符。

所以我们的文件名称可以使用定义的分隔符变量来获取,而不是我们手动写死。

名称分隔符:windows系统下\,linux、unix系统下/

路径分隔符:windows系统下;,linux、unix系统下:

源码中分别定义了单个字符表示的分割符和使用字符串拼接后的分隔符。

image

二、File类常用 API

1、文件属性

属性api较多,我们分段展示

  • String getName():获取文件或目录的路径名称,只返回路径名名称序列中的最后一个名称。
  • String getParent():获取当前文件或目录的父路径字符串。
  • File getParentFile():获取当前文件或目录的父路径File对象。
  • String getPath():获取文件或目录的路径
  • String getAbsolutePath():获取文件或目录的绝对路径
    public void fileTest2(){
        String fileName = "D:" + File.separator + "Snow" + File.separator + "test1.txt";
        File file = new File(fileName);
        // 获取文件或目录名称
        System.out.println("getName方法:" + file.getName());
        // 获取父类路径字符串
        System.out.println("getParent方法:" + file.getParent());
        // 获取父类File对象
        File parentFile = file.getParentFile();
        System.out.println("getParentFile方法:" + parentFile.getClass());
        // 获取抽象路径字符串
        System.out.println("getPath方法:" + file.getPath());
        // 获取绝对路径字符串
        System.out.println("getAbsolutePath方法:" + file.getAbsolutePath());
    }

image

  • public boolean isDirectory():判断是否为目录
  • public boolean isFile():判断是否为文件
  • public boolean exists():判断文件或目录是否存在
  • public boolean isHidden():判断文件是否隐藏
  • public long lastModified():获取文件最后修改时间的时间戳,文件时不存在返回0
  • public long length():获取文件字节数
  • public boolean isAbsolute():判断路径是否为绝对路径
    @Test
    public void fileTest3(){
        File fileDirectory = new File("D:\\Snow\\testFile");
        File file = new File("D:\\Snow\\testFile\\test1111.txt");
        //判断是否为目录
        System.out.println("isDirectory方法:" + file.isDirectory());
        //判断是否为文件
        System.out.println("isFile方法:" + file.isFile());
        //判断文件或目录是否存在
        System.out.println("exists方法:" + file.exists());
        //判断文件是否隐藏
        System.out.println("isHidden方法:" + file.isHidden());
        //获取文件最后修改时间的时间戳,文件时不存在返回0
        System.out.println("lastModified方法:" + file.lastModified());
        //获取文件字节数
        System.out.println("length方法:" + file.length());
        //判断路径是否为绝对路径
        System.out.println("isAbsolute方法:" + file.isAbsolute());
    }

image

2、文件/目录创建删除等

  • public boolean mkdir():创建指定路径名称的目录(父目录不存在无法创建)
  • public boolean mkdirs():创建指定路径名称的目录及父目录
  • public boolean delete():删除此路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。删除成功才返回 true
  • public boolean renameTo(File dest):重新命名文件,参数是一个File对象。
  • public boolean createNewFile():根据路径名创建一个新文件,会检查文件是否存在,文件存在则返回false。
    public void fileTest4() throws IOException {
        String fileName = "D:\\Snow\\testFile\\testDir\\aaa";
        File file = new File(fileName);
        // 当父路径不存在时,无法创建
        // System.out.println(file.mkdir());
        // 当父路径不存在时会依次创建所有父路径
        System.out.println("mkdirs方法:" + file.mkdirs());
        // 删除文件或目录
        System.out.println("delete方法:" + file.delete());
        // 文件或目录重命名
        File file1 = new File("D:\\Snow\\testFile\\aaa.txt");
        File file2 = new File("D:\\Snow\\testFile\\bbb.txt");
        System.out.println("renameTo方法:" + file1.renameTo(file2));
        // 创建文件
        File file4 = new File("D:\\Snow\\testFile\\newFile.txt");
        System.out.println("createNewFile方法:" + file4.createNewFile());
    }

3、文件列表

  • public String[] list():返回当前目录下的文件和目录的字符串数组。
  • public File[] listFiles():返回当前目录下的文件和目录的 File 对象数组。
    @Test
    public void fileTest5(){
        File file = new File("D:\\Snow\\testFile");
        // 获取文件字符串数组
        String[] list = file.list();
        System.out.println("list方法:"+Arrays.toString(list));
        // 获取文件对象数组
        File[] listFiles = file.listFiles();
        System.out.println("listFiles方法:");
        for (File listFile : listFiles) {
            System.out.println(listFile);
        }
    }

image

文章参考链接:https://www.cnblogs.com/noteless/p/9609837.html

标签:文件,Java,IO,File,System,file,println,out
From: https://www.cnblogs.com/Snowclod/p/17524730.html

相关文章

  • STM32除IO脚的其他引脚功能说明
    STM32除IO脚的其他引脚功能说明  一、二糖有话说 很多时候我们做stm32硬件设计的时候都是直接用以前的工程将最小系统直接复制过来使用,只需要修改IO脚就好,但是为什么要这么设计却一知半解,今天去了解一下除IO口外其他引脚的功能作用。包括(VBAT,VDD,VSS,VDDA,VSSA,......
  • java限流-基于基于guava实现
     1、引入guava依赖<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>23.0</version></dependency>2、自定义限流注解自定义一个限流用的注解,后面在需要限流的方法或接口上面只需添加该注解即可; importjava......
  • Android 原生混合flutte运行:Could not resolve io.flutter。
    Android原生项目混合开发flutter,在运行新项目的时候报错。>Couldnotresolveio.flutter:flutter_embedding_debug:1.0.0-2a3401c9bbb5a9a9aec74d4f735d18a9dd3ebf2d. 解决方案添加   url"https://storage.flutter-io.cn/download.flutter.io"repositories{......
  • java8 日期、时间处理类
    一、LocalDate类创建LocalDate方法说明staticLocalDatenow()获取默认时区的当前日期,默认返回格式yyyy-MM-ddstaticLocalDatenow(Clockclock)从指定时钟获取当前日期staticLocalDatenow(ZoneIdzone)获取指定时区的当前日期staticLocalDateof(i......
  • 【四】JavaScript之类型转换
    【四】JavaScript之类型转换【1】类型转换javascript是弱类型的编程语言所以本身不仅提供了数据类型的转换甚至在数据使用运算符的时候,javascript的解释器也会出现默认隐式转换数据类型的情况。【2】字符串字符串转换成布尔值除了空字符串("")被转为false,其他的任......
  • 【三】JavaScript之数据类型
    【三】JavaScript之数据类型【0】数据类型展示javascript中变量的值有不同的作用或者功能。按不同的功能,值也可以区分不同的类型。类型名称描述Number数值型整数,浮点数。。。。String字符串文本,一般使用"双引号",'单引号'或者反引号圈起来的都是文本。Bo......
  • 【十】JavaScript之内置对象
    【十】JavaScript之内置对象【1】内置对象build-inObject,也叫内建对象,由浏览器提供给开发者直接使用的。文档地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects【2】Number数值对象,在js中一切的数值类型数据,都附带Number对象的......
  • 【九】JavaScript之对象
    【九】JavaScript之对象【1】对象js中,虽然是函数优先的编程语言,但是使用上也是基于对象的所以在js中也存在万物皆为对象的情况。【2】对象的创建<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><bo......
  • 【八】JavaScript之函数
    【八】JavaScript之函数【1】函数javascript被称为披着面向对象的皮的函数式编程语言,是函数优先的编程语言,所以本质上js中的一切都是基于函数构建出来,所以函数本身也是对象,也是一等公民。function,是类似变量一样的容器,代表了一段具有指定功能的代码段。【2】函数使用的......
  • 【七】JavaScript之异常判断
    【七】JavaScript之异常判断【1】异常捕获文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/try...catchjs中提供了三种异常处理的写法:try...catchtry...finallytry...catch...finallytry{//尝试执行的代码}catch(e){//......