IO流中的File类详解 - 极悦
首页 课程 师资 教程 报名

IO流中的File类详解

  • 2020-11-19 17:24:48
  • 1276次 极悦

IO流实际上就是对文件的输入输出,既然至始至终都离不开文件,所以Java IO流的使用得从File类讲起。


一、File类的描述

File类是文件和目录路径名的抽象表示形式,主要用于文件和目录的创建、查找和删除等操作。即Java中把文件或者目录(文件夹)都封装成File对象。也就是说如果我们要去操作硬盘上的文件或者目录只要创建File这个类即可。 不过要注意的是File类只是对文件的操作类,只能对文件本身进行操作,不能对文件内容进行操作。


二、File类的构造方法

new File(String path):根据路径path把该文件(夹)封装成一个对象。

new File(String parentPath,String childPath):根据两个字符串的路径,把该文件(夹)封装成对象。这样做的好处是可以灵活填写路径。

new File(File f,String path):根据文件对象f以及路径path把对应的文件(夹)封装成对象。


三、File里面的字段(final类型):


1.与系统有关的默认名称分隔符

File.separator:String类型。Windows下是"",Linux下是"/"。

File.separatorChar:char类型。


2.与系统有关的路径分隔符

File.pathSeparator: 此字符用于分隔以路径列表形式给定的文件序列中的文件名,在 UNIX 系统上此字段为:,在 Microsoft Windows 系统上,它为;。

File.pathSeparatorChar:char类型。


四、File类的常用方法


1、获取文件的相关信息:

String getAbsolutePath() :获取绝对路径名字符串。

String getName():获取文件或目录的名称。

String getPath():获取路径名字符串。

String getParent() :获取路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。

Long lastModified():获取最后一次修改的时间(返回毫秒)。

Long length():获取文件的长度,如果表示目录则返回值未指定。

以上方法测试的代码如下【测试以自己的电脑文件夹为准】:

package com.thr;

import java.io.File;

import java.io.IOException;

public class Demo1 {

public static void main(String[] args) {

//路径带文件

File f1 = new File("D:\\IO\\hello.txt");

System.out.println("文件绝对路径:"+f1.getAbsolutePath());

System.out.println("文件名称:"+f1.getName());

System.out.println("文件路径(字符串):"+f1.getPath());

System.out.println("文件父路径:"+f1.getParent());

System.out.println("文件最后修改时间(ms):"+f1.lastModified());

System.out.println("文件长度:"+f1.length());

System.out.println("------------");

//路径不带文件,纯目录

File f2 = new File("D:\\IO");

System.out.println("目录绝对路径:"+f2.getAbsolutePath());

System.out.println("目录名称:"+f2.getName());

System.out.println("目录路径(字符串):"+f2.getPath());

System.out.println("目录父路径:"+f2.getParent());

System.out.println("目录最后修改时间(ms):"+f2.lastModified());

System.out.println("目录长度:"+f2.length());

}

}

运行结果:

文件绝对路径:D:\IO\hello.txt

文件名称:hello.txt

文件路径(字符串):D:\IO\hello.txt

文件父路径:D:\IO

文件最后修改时间(ms):1582207195168

文件长度:9

------------

目录绝对路径:D:\IO

目录名称:IO

目录路径(字符串):D:\IO

目录父路径:D:\

目录最后修改时间(ms):1582206503515

目录长度:0

注意:绝对路径和相对路径的区别

绝对路径:是一个完整的路径,以盘符开头,例如 D://IO//hello.txt。

相对路径:是相较于当前路径,不以盘符开头,例如 //hello.txt。


2、判断功能

Boolean isDirectory():判断此路径是否为一个目录

Boolean isFile():判断是否为一个文件

Boolean exists():判断文件或目录是否存在

Boolean canExecute():判断文件是否可执行

Boolean canRead():判断文件是否可读

Boolean canWrite():判断文件是否可写

Boolean isHidden():判断是否为隐藏文件


3、新建和删除

Boolean createNewFile():创建文件,如果文件存在则不创建,返回false,反之返回true。

Boolean mkdir():创建文件目录。如果此文件目录存在则不创建,如果此文件目录的上层目录不存在也不创建。

Boolean mkdirs(): 创建文件目录。如果上层文件目录不存在也会创建。

Boolean delete():删除的文件或目录。如果目录下有文件或目录则不会删除。


4、文件的获取:

String[] list():返回一个字符串数组,获取指定目录下的所有文件或者目录名称的数组。

File[] listFiles():返回一个抽象路径名数组,获取指定目录下的所有文件或者目录的File数组。


5、重命名文件:

Boolean renameTo(File dest):把文件重命名到指定路径。


以上就是本文对IO流中的File类的全面讲解,囊括了File类的大部分知识,当然有一些很细节的东西还没有讲到,想深入学习的小伙伴可以观看本站的Java基础教程


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交