Java文件操作-Java.IO File类

一、基本概念

1、File类是文件路径或目录路径的抽象表示。

换言之,File类的实例(即File对象)可能指向或可能不指向文件系统中的真实文件。

2、File类是与操作系统无关的。

一个File对象,包括两个部分:前缀、字符串名,即“前缀+字符串名+前缀+字符串名…”。
(1) 不同的操作系统起始的前缀不一样,在windows中使用的是磁盘驱动器名加上":",如“C:\”,而UNIX中使用的是“/usr”。
Java虚拟机的运行目录是我们应用程序的起始目录,该目录可以通过系统属性user.dir获得,从而可以屏蔽该差异。(当然,如果你设置其他起始路径,如文件的上传路径,你也可以通过在配置文件中设置配置参数的方式来屏蔽该差异)

String  workingDir = System.getProperty("user.dir");

(2) 不同的操作系统使用不同的字符来分隔路径名中的两个部分。例如,Windows在路径名中使用反斜杠(\)作为名称分隔符,而UNIX使用正斜杠(/)。
File类定义了一个名为分隔符的常量,它是系统相关的名称分隔符。我们可以使用File.separator常量来获取名称分隔符。

System.out.println(System.getProperty("user.dir")+ File.separator + "notes.txt");

(3) 使用File对象,我们可以创建新文件,删除现有文件,重命名文件,更改文件的权限等。

(4)File类中的isFile()和isDirectory()告诉File对象是否表示文件或目录。

二、使用示例

(1) 我们可以使用File类的以下构造函数之一创建一个文件:

File(String pathname)
File(File parent, String child)
File(String parent, String child)
File(URI uri)

例如:

File dummyFile = new File("test.txt");

名为test.txt的文件不必存在,以使用此语句创建File对象。
dummyFile对象表示抽象路径名,它可能指向或可能不指向文件系统中的真实文件。

(2) 检测文件的存在
我们可以使用File类的exists()方法检查File对象的抽象路径名是否存在。
boolean fileExists = dummyFile.exists();

import java.io.File;

public class FileDemo {
    public static void main(String[] argv) {
        //获取源程序目录地址
        System.out.println(System.getProperty("user.dir")+ File.separator + "notes.txt");

        // Create a File object
        File dummyFile = new File("dummy.txt");

        // Check for the file"s existence
        boolean fileExists = dummyFile.exists();
        if (fileExists) {
            System.out.println("The dummy.txt  file exists.");
        } else {
            System.out.println("The dummy.txt  file does  not  exist.");
        }
    }
}

上面的代码生成以下结果。

D:\Java\DemoSource\notes.txt
The dummy.txt  file does  not  exist.

(3)检测文件类型
isDirectory():Tests whether the file denoted by this abstract pathname is a directory.
isFile():Tests whether the file denoted by this abstract pathname is a normal file.

参考:
关于File对象的更多解释,javadoc中讲解的更为全面,英文不理解的用Google翻译(其他翻译不准确),链接如下。
java 8: https://docs.oracle.com/javase/8/docs/api/
其他参考:
w3cschool: https://www.w3cschool.cn/java/java-io-file.html

发布了18 篇原创文章 · 获赞 19 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/xujinggen/article/details/101393266