【File】File类基础

一、File类

是java.io包中唯一代表磁盘文件本身对象。File类定义了一些与平台无关的方法来操作文件,也可以通过调用File类中的方法来实现创建,删除,重命名文件等操作;File类的对象主要用来获取文件本身的一些信息;如文件所在的目录,文件的长度,文件的读写权限等;数据流可以将数据写入到文件中,文件也是数据流最长用的数据媒体;

二、文件的创建与删除

可以使用File类创建一个文件对象、通常有3种构造方法来创建文件对象。

1.File(String pathname)
该构造方法通过给定路径名字符串转换为抽象路径名来创建一个File实例;
New File(String pathname)
其中,pathname指路径名称(包含文件名)。例如:

File file = new File"d:/1.txt");

2.File(String parent,String child)
该构造方法根据定义父路径和子路径(包含文件名)来创建一个新的File对象;
语法如下:

new FileString parent,String child);

parent:父路径字符串,例如,D:/或者D:/doc.
child:子路径字符串。例如,letter.txt.

3File(File f,String child)
f:父路径对象,例如,D:/doc/。
child:子路径对象,例如,letter.txt。

对于Microsoft Windows平台,包含盘符路径名前缀由驱动号和一个:组成;如果路径是绝对路径,还可能后面跟\;当使用一个File类创建一个文件对象后,例如:

File file = new  File("word.txt");

如果当前目录中不存在名称为word的文件,File对象还可通过调用createNewFile()方法创建一个名为word.txt的文件;如果存在word.txt文件,可以通过调用delete()方法将其删除;如图所示;

三、例题

在项目中创建FileTest,在主方法中判断D盘中myword文件夹是否存在word.txt文件,如果存在,将其删除,如果不存在,创建该文件;

public class Test4 {
    public static void main(String[] args){
        File file = new File("word.txt");
        if (!file.exists()){
            try {
                file.createNewFile();
                System.out.println("文件已经创建");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }else {
            file.getAbsolutePath();
            System.out.println(file.getAbsolutePath());
            file.delete();
            System.out.println("文件已删除");
        }
    }
}

这里原来不知道下载文件的位置,只好用getAbsolutePath()获取其绝对路径;后来发现word.txt文件在项目根目录下面;
获取文件信息的方法(常用)如下:
String getName():获取文件名称;
boolean canRead():判断文件是否可读;
boolean canWrite():判断文件是否可以被写入;
boolean exist():判断文件是否存在;
long length():获取文件的长度(以字节为单位);
String getAbsolutePath():获取文件的绝对路径;
String getParent():获取文件的父路径;
boolean isFile():判断文件是否存在,是否是一个文件;
boolean isDirectory():判断文件/夹 是否是文件夹;
boolean isHidden():判断文件是否是隐藏文件;
long lastModified():判断文件最后的修改时间;

package test;

import java.io.File;
import java.io.IOException;

/**
 * Created by Administrator on 2017/8/2 0002.
 */
public class FileTest {
    public static void main(String[] args) {
        File file = new File("word.txt");
        if (!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            String name=file.getName();
            System.out.println("name:"+name);
            Boolean read = file.canRead();
            System.out.println("canRead?:"+read);
            Boolean write = file.canWrite();
            System.out.println("canWrite?:"+write);
            Boolean exist = file.exists();
            System.out.println("exist?:"+exist);
            Long lengths = file.length();
            System.out.println("文件的长度:"+lengths);
            String path = file.getAbsolutePath();
            System.out.println("文件的路径:"+path);
            String parentPath = file.getParent();
            System.out.println("文件的父路径:"+parentPath);
            Boolean isfile = file.isFile();
            System.out.println("是否是文件?:"+isfile);
            Boolean isDirectory = file.isDirectory();
            System.out.println("是否是文件夹?:"+isDirectory);
            Boolean isHidden = file.isHidden();
            System.out.println("是否是隐藏文件/夹?:"+isHidden);
            Long lastModified = file.lastModified();
            System.out.println("最后修改时间:"+lastModified);
            file.delete();

            file.canExecute();//是否可以执行
            System.out.println("是否可以执行"+file.canExecute());
            file.compareTo(new File("world.txt"));
            file.deleteOnExit();//当存在时删除
            file.equals("world.txt");//是否相等
            file.getFreeSpace();//获取空余空间
            file.getParentFile();//获取父文件夹
            file.renameTo(new File("words.txt"));//重命名;


        }
    }
}

【File】File类基础_第1张图片

四、总结

这里需要注意:
①看结果的截图,文件的父路径没有,说明,这个路径是整个:E:\projects\fxrj\fxrj-admin\word.txt;而不是word.txt;
②这里最后的修改时间是Long类型的,所示不是可视化可理解的;需要时间类型转换;

你可能感兴趣的:(【基础】)