### Java File 类的方法详解 #### 一、简介 在Java编程语言中,`java.io.File`类是一个非常重要的类,它提供了对文件和目录路径名的抽象表示,并且支持一些基本的操作,例如创建、删除文件或目录等。本文将详细介绍`File`类中的常用构造方法及方法,并给出相应的说明。 #### 二、构造方法 `File`类中有三种主要的构造方法: 1. **File(File dir, String name)** - 创建一个新的`File`实例,代表由指定的`File`对象(即目录)和名称组成的路径。 - **参数**: - `dir`:指定目录的`File`对象。如果`dir`为`null`,则新的`File`实例表示当前目录中的一个文件。 - `name`:文件的名称。 - **示例代码**: ```java File dir = new File("/home/user/documents"); File file = new File(dir, "example.txt"); ``` 2. **File(String path)** - 使用指定的路径字符串创建一个新的`File`实例。 - **参数**: - `path`:文件的路径名。 - **示例代码**: ```java File file = new File("/home/user/documents/example.txt"); ``` 3. **File(String path, String name)** - 使用指定的目录路径和文件名创建一个新的`File`实例。 - **参数**: - `path`:目录的路径名。 - `name`:文件的名称。 - **示例代码**: ```java File file = new File("/home/user/documents", "example.txt"); ``` #### 三、常用方法 1. **canRead()** - 测试当前文件是否可以被读取。 - **返回值**:如果文件存在并且可读,则返回`true`;否则返回`false`。 - **示例代码**: ```java if (file.canRead()) { System.out.println("文件可读!"); } ``` 2. **canWrite()** - 测试当前文件是否可以被写入。 - **返回值**:如果文件存在并且可写,则返回`true`;否则返回`false`。 - **示例代码**: ```java if (file.canWrite()) { System.out.println("文件可写!"); } ``` 3. **delete()** - 删除由该`File`对象表示的文件或目录。 - **返回值**:如果成功删除,则返回`true`;否则返回`false`。 - **示例代码**: ```java if (file.delete()) { System.out.println("文件删除成功!"); } ``` 4. **exists()** - 测试由该`File`对象表示的文件或目录是否实际存在。 - **返回值**:如果文件或目录存在,则返回`true`;否则返回`false`。 - **示例代码**: ```java if (file.exists()) { System.out.println("文件存在!"); } ``` 5. **getAbsolutePath()** - 返回该`File`对象所表示的文件或目录的绝对路径。 - **返回值**:一个字符串,表示文件或目录的绝对路径。 - **示例代码**: ```java System.out.println(file.getAbsolutePath()); ``` 6. **getCanonicalPath()** - 返回该`File`对象所表示的文件或目录的规范化路径。 - **返回值**:一个字符串,表示文件或目录的规范化路径。 - **示例代码**: ```java try { System.out.println(file.getCanonicalPath()); } catch (IOException e) { e.printStackTrace(); } ``` 7. **getName()** - 返回该`File`对象所表示的文件或目录的名称。 - **返回值**:一个字符串,表示文件或目录的名称。 - **示例代码**: ```java System.out.println(file.getName()); ``` 8. **getParent()** - 返回该`File`对象所表示的文件或目录的父目录的路径。 - **返回值**:一个字符串,表示父目录的路径;如果不存在父目录,则返回`null`。 - **示例代码**: ```java System.out.println(file.getParent()); ``` 9. **getPath()** - 返回该`File`对象所表示的文件或目录的路径。 - **返回值**:一个字符串,表示文件或目录的路径。 - **示例代码**: ```java System.out.println(file.getPath()); ``` 10. **hashCode()** - 计算该`File`对象的哈希码值。 - **返回值**:一个整数,表示该对象的哈希码值。 - **示例代码**: ```java System.out.println(file.hashCode()); ``` 11. **isAbsolute()** - 测试该`File`对象所表示的文件或目录是否具有绝对路径。 - **返回值**:如果具有绝对路径,则返回`true`;否则返回`false`。 - **示例代码**: ```java if (file.isAbsolute()) { System.out.println("路径是绝对的!"); } ``` 12. **isDirectory()** - 测试该`File`对象所表示的文件或目录是否是一个目录。 - **返回值**:如果是一个目录,则返回`true`;否则返回`false`。 - **示例代码**: ```java if (file.isDirectory()) { System.out.println("这是个目录!"); } ``` 13. **isFile()** - 测试该`File`对象所表示的文件或目录是否是一个普通的文件。 - **返回值**:如果是一个普通文件,则返回`true`;否则返回`false`。 - **示例代码**: ```java if (file.isFile()) { System.out.println("这是个文件!"); } ``` 14. **lastModified()** - 返回该`File`对象所表示的文件或目录最后一次被修改的时间。 - **返回值**:一个长整型数字,表示自1970年1月1日0时0分0秒以来的时间毫秒数。 - **示例代码**: ```java long lastModifiedTime = file.lastModified(); System.out.println("最后修改时间: " + lastModifiedTime); ``` 15. **length()** - 返回该`File`对象所表示的文件的长度(以字节为单位)。 - **返回值**:一个长整型数字,表示文件的长度。 - **示例代码**: ```java long fileSize = file.length(); System.out.println("文件大小: " + fileSize + " 字节"); ``` 16. **list()** - 返回该`File`对象所表示的目录中所有文件和子目录的名称数组。 - **返回值**:一个字符串数组,包含目录中的所有文件和子目录的名称。 - **示例代码**: ```java String[] fileList = file.list(); for (String fileName : fileList) { System.out.println(fileName); } ``` 17. **list(FilenameFilter filter)** - 返回该`File`对象所表示的目录中所有文件和子目录的名称数组,这些名称通过指定的过滤器过滤。 - **参数**:`filter` – 用于过滤文件名的`FilenameFilter`对象。 - **返回值**:一个字符串数组,包含目录中符合条件的所有文件和子目录的名称。 - **示例代码**: ```java FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".txt"); } }; String[] fileList = file.list(filter); for (String fileName : fileList) { System.out.println(fileName); } ``` 18. **mkdir()** - 创建一个由该`File`对象表示的新目录。 - **返回值**:如果目录被成功创建,则返回`true`;如果目录已经存在,则返回`false`。 - **示例代码**: ```java if (file.mkdir()) { System.out.println("目录创建成功!"); } ``` 19. **mkdirs()** - 创建一个由该`File`对象表示的新目录及其任何必需但不存在的父目录。 - **返回值**:如果目录被成功创建,则返回`true`;如果目录已经存在,则返回`true`。 - **示例代码**: ```java if (file.mkdirs()) { System.out.println("目录创建成功!"); } ``` 20. **renameTo(File dest)** - 将该`File`对象所表示的文件或目录重命名或移动到新位置。 - **参数**:`dest` – 新的`File`对象,表示目标位置。 - **返回值**:如果文件或目录被成功重命名,则返回`true`;否则返回`false`。 - **示例代码**: ```java File dest = new File("/home/user/documents/new_name.txt"); if (file.renameTo(dest)) { System.out.println("文件重命名成功!"); } ``` 21. **toString()** - 返回该`File`对象的字符串表示形式。 - **返回值**:一个字符串,表示文件或目录的路径。 - **示例代码**: ```java System.out.println(file.toString()); ``` 以上是`java.io.File`类中的构造方法和一些常用的方法。这些方法为我们提供了对文件系统进行操作的强大工具。掌握这些方法的用法对于进行文件操作非常重要。希望本文能够帮助您更好地理解和使用Java中的`File`类。
- czqczy2013-04-11百度文库有相关内容
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助