Java IO体系之File类浅析
Java IO体系之File类浅析
一、File类介绍
位于java.io下的Java File类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File对象代表磁盘中实际存在的文件和目录,该类实现了Serializable和Comparable<File>接口,意味着该类支持序列化,并且实例对象可进行比较。博主把它归于java io体系中
File(文件)类这个名字有一定的误导性,我们可能会认为它指代的是文件,实际上却并非如此。它既能代表一个特定文件的名称,又能代表一个目录下的一组文件的名称
File类不能用于文件的内容访问。
二、File类方法摘要:
| 构造方法摘要 | |
|---|---|
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 |
|
File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 |
|
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。 |
|
File(URI uri)通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。 |
|
可通过以下构造方法创建一个File对象。
通过给定的父抽象路径名和子路径名字符串创建一个新的File实例。
File(File parent, String child);
通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
File(String pathname)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(String parent, String child)
通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。
File(URI uri)
创建File对象成功后,可以使用以下列表中的方法操作文件。
| 序号 | 方法描述 |
|---|---|
| 1 | public String getName() 返回由此抽象路径名表示的文件或目录的名称。 |
| 2 |
public String getParent()、 返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。 |
| 3 |
public File getParentFile() 返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null。 |
| 4 |
public String getPath() 将此抽象路径名转换为一个路径名字符串。 |
| 5 |
public boolean isAbsolute() 测试此抽象路径名是否为绝对路径名。 |
| 6 |
public String getAbsolutePath() 返回抽象路径名的绝对路径名字符串。 |
| 7 |
public boolean canRead() 测试应用程序是否可以读取此抽象路径名表示的文件。 |
| 8 |
public boolean canWrite() 测试应用程序是否可以修改此抽象路径名表示的文件。 |
| 9 |
public boolean exists() 测试此抽象路径名表示的文件或目录是否存在。 |
| 10 |
public boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。 |
| 11 |
public boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。 |
| 12 |
public long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。 |
| 13 |
public long length() 返回由此抽象路径名表示的文件的长度。 |
| 14 |
public boolean createNewFile() throws IOException 当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。 |
| 15 |
public boolean delete() 删除此抽象路径名表示的文件或目录。 |
| 16 |
public void deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 |
| 17 |
public String[] list() 返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。 |
| 18 |
public String[] list(FilenameFilter filter) 返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。 |
| 19 |
public File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。 |
| 20 |
public File[] listFiles(FileFilter filter) 返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。 |
| 21 |
public boolean mkdir() 创建此抽象路径名指定的目录。 |
| 22 |
public boolean mkdirs() 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。 |
| 23 |
public boolean renameTo(File dest) 重新命名此抽象路径名表示的文件。 |
| 24 |
public boolean setLastModified(long time) 设置由此抽象路径名所指定的文件或目录的最后一次修改时间。 |
| 25 |
public boolean setReadOnly() 标记此抽象路径名指定的文件或目录,以便只可对其进行读操作。 |
| 26 |
public static File createTempFile(String prefix, String suffix, File directory) throws IOException 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
| 27 |
public static File createTempFile(String prefix, String suffix) throws IOException 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 |
| 28 |
public int compareTo(File pathname) 按字母顺序比较两个抽象路径名。 |
| 29 |
public int compareTo(Object o) 按字母顺序比较抽象路径名与给定对象。 |
| 30 |
public boolean equals(Object obj) 测试此抽象路径名与给定对象是否相等。 |
| 31 |
public String toString() 返回此抽象路径名的路径名字符串。 |
三、实例分析:
File类常用API实例:
package me.io.file; import java.io.File;
import java.io.IOException; public class FileDemo { public static void main(String[] args) {
// 了解构造函数的情况 查帮助
File file = new File("E:\\javaio\\file");
// System.out.println(file.exists());
if (!file.exists())
file.mkdir(); // file.mkdirs()
else
file.delete();
// 是否是一个目录 如果是目录返回true,如果不是目录or目录不存在返回的是false
System.out.println(file.isDirectory());
// 是否是一个文件
System.out.println(file.isFile()); // File file2 = new File("e:\\javaio\\日记1.txt");
File file2 = new File("e:\\javaio", "日记1.txt");
if (!file2.exists())
try {
file2.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
else
file2.delete();
// 常用的File对象的API
System.out.println(file);// file.toString()的内容
System.out.println(file.getAbsolutePath());
System.out.println(file.getName());
System.out.println(file2.getName());
System.out.println(file.getParent());
System.out.println(file2.getParent());
System.out.println(file.getParentFile().getAbsolutePath());
}
}
遍历目录:
/**
* 列出指定目录下(包括其子目录)的所有文件
*
* @param dir
*/
public static void listDirectory(File dir) {
if (!dir.exists()) {
throw new IllegalArgumentException("目录" + dir + "不存在!");
}
if (!dir.isDirectory()) {
throw new IllegalArgumentException(dir + "不是目录!");
}
/*
* String[] fileNames = dir.list();//返回的是字符串数组 for (String fileName :
* fileNames) { System.out.println(dir + "\\" +fileName); }
*/
// 如果要列出子目录下的文件,就要构造File对象做递归操作
File[] files = dir.listFiles();
if (files != null && files.length > 0)
for (File file : files) {
if (file.isDirectory()) {
//递归调用
listDirectory(file);
} else {
System.out.println(file);
}
}
}
参考文章:
http://www.runoob.com/java/java-file.html
Java IO体系之File类浅析的更多相关文章
- JAVA基础知识之IO——Java IO体系及常用类
Java IO体系 个人觉得可以用"字节流操作类和字符流操作类组成了Java IO体系"来高度概括Java IO体系. 借用几张网络图片来说明(图片来自 http://blog.c ...
- java io学习之File类
1.先看下四个静态变量 static String pathSeparator The system-dependent path-separator character, represented a ...
- java io知识点汇总FIle类
1.路径分隔符问题: 因为java有跨平台行,而在windows和linux中的目录分隔符是不同的.windows是"\" 而linux是"/" 所以必须想办 ...
- 【Java IO流】File类的使用
File类的使用 Java中的File类是在java.io.File中,Java.IO.File类表示文件或目录. File类只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. 一 ...
- java IO(一):File类
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- java IO流之——File类知识总结和面试
File类描述的是一个文件或文件夹.(文件夹也可以称为目录).该类的出现是对文件系统的中的文件以及文件夹进行对象的封装.可以通过对象的思想来操作文件以及文件夹.可以用面向对象的处理问题,通过该对象的方 ...
- java IO流 之 FIle类基础
package IO; import java.io.File;import java.io.IOException; public class FileIO { /** * 构建及获取文件名信息 * ...
- Java IO体系之RandomAccessFile浅析
Java IO体系之RandomAccessFile浅析 一.RandomAccessFile综述: 1.1RandomAccessFile简介 RandomAccessFile是java Io体系中 ...
- Java IO体系综述
Java IO体系综述 一.流的概念 在Java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称作输出流.这些字节序列的来源地和目的地可以是文件,而且通常都 ...
随机推荐
- 整合SSM框架必备基础—SpringMVC(下)
在上一篇文章<整合SSM框架必备基础-SpringMVC(上)>中,胖达介绍了关于SpringMVC的诞生.优势以及执行流程等理论知识点,这篇文章打算在实操中加深一下对SpringMVC的 ...
- 如何更换织梦cms系统的网站小图标
织梦cms建站现在已经是很普遍的建站方式了,下面小编就分享一个简单的换网站小图标的方法! 一.登录自己网站的后台管理系统.在不修改织梦后台的情况下,默认的url是自己的网站后台dede目录下访问. 二 ...
- C语言数据类型及变量整理
数据类型 获取int的字节数大小方法 printf("int bytes:%d",sizeof(int)); 列表整理 类型 字节数 取值范围 char 1 [-128,127]= ...
- spring+mybatis最简多数据源配置
作者:纯洁的微笑出处:http://www.ityouknow.com/ 版权所有,欢迎保留原文链接进行转载:) 说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持 ...
- D3学习之画布制作
最近大半个月都和d3斗争,学习艰辛(呜呜……)如果觉得作者写的对你有用,可以打赏作者哦!owo 起言:结合自己的学习之路,我认为要想使用d3画图搞清楚布局很重要,层次分明,就给了你很大的灵活性,写起代 ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- MOCTF-Crypt-writeup
MOctf Crypt Writeup记录 都不难,就随便记录记录下. MOCTF平台地址:http://www.moctf.com 0x01 数据库密码 hint:20岁的小刚,自幼热爱信息安全,一 ...
- maven的编译规范
maven的中央仓库上的jar的包名必须小写.否则maven编译不通过. 如:Memcached-Java-Client-3.0.2 的jar包. 目录如下: com.whalin.memcached ...
- 10分钟了解一致性hash算法
应用场景 当我们的数据表超过500万条或更多时,我们就会考虑到采用分库分表:当我们的系统使用了一台缓存服务器还是不能满足的时候,我们会使用多台缓存服务器,那我们如何去访问背后的库表或缓存服务器呢,我们 ...
- Linux基础管道管理
一.I/O重定向 标准输入,标准输出,标准错误 file descriptors (FD, 文件描述符或Process I/O channels); 进程使用文件描述符来管理打开的文件 [root@l ...