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类浅析的更多相关文章

  1. JAVA基础知识之IO——Java IO体系及常用类

    Java IO体系 个人觉得可以用"字节流操作类和字符流操作类组成了Java IO体系"来高度概括Java IO体系. 借用几张网络图片来说明(图片来自 http://blog.c ...

  2. java io学习之File类

    1.先看下四个静态变量 static String pathSeparator The system-dependent path-separator character, represented a ...

  3. java io知识点汇总FIle类

    1.路径分隔符问题: 因为java有跨平台行,而在windows和linux中的目录分隔符是不同的.windows是"\" 而linux是"/"  所以必须想办 ...

  4. 【Java IO流】File类的使用

    File类的使用 Java中的File类是在java.io.File中,Java.IO.File类表示文件或目录. File类只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. 一 ...

  5. java IO(一):File类

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  6. java IO流之——File类知识总结和面试

    File类描述的是一个文件或文件夹.(文件夹也可以称为目录).该类的出现是对文件系统的中的文件以及文件夹进行对象的封装.可以通过对象的思想来操作文件以及文件夹.可以用面向对象的处理问题,通过该对象的方 ...

  7. java IO流 之 FIle类基础

    package IO; import java.io.File;import java.io.IOException; public class FileIO { /** * 构建及获取文件名信息 * ...

  8. Java IO体系之RandomAccessFile浅析

    Java IO体系之RandomAccessFile浅析 一.RandomAccessFile综述: 1.1RandomAccessFile简介 RandomAccessFile是java Io体系中 ...

  9. Java IO体系综述

    Java IO体系综述 一.流的概念 在Java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称作输出流.这些字节序列的来源地和目的地可以是文件,而且通常都 ...

随机推荐

  1. Windows环境下main()函数传入参数

    最近几天在写一个模仿windows自带的ping程序,也从网上找过一些源码,但大都需要向主函数main中传入参数,这里简单总结一下向主函数中传参的方法. 方法一:项目->属性->调试-&g ...

  2. Linux设备驱动程序学习----1.设备驱动程序简介

    设备驱动程序简介 更多内容请参考Linux设备驱动程序学习----目录 1. 简介   Linux系统的优点是,系统内部实现细节对所有人都是公开的.Linux内核由大量复杂的代码组成,设备驱动程序可以 ...

  3. 负载分配—DNS的域名解析

    DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网.人们在通过浏览器访问网站时只需要记住网站的域名即可,而不需 ...

  4. linuk挂载命令

    1 Linuk挂在命令如下(将一个目录下面的东西挂在到另一个目录上面) mount -bind -o rw /data/vsftpd/原目录   /data/vsftpd/目标目录 2 查看所有的挂载 ...

  5. 角度转弧度&根据弧度计算圆周上点的坐标的方法

    角度转弧度: #define AngleToRadian(angle) (M_PI/180.0f)*angle 以正东面为0度起点计算指定角度所对应的圆周上的点的坐标: float radian = ...

  6. jumpserver1.4.1 安装过程

    # 修改字符集 localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8 echo 'LANG="zh_CN. ...

  7. Flink+Druid构建实时OLAP的探索

    场景 k12在线教育公司的业务场景中,有一些业务场景需要实时统计和分析,如分析在线上课老师数量.学生数量,实时销售额,课堂崩溃率等,需要实时反应上课的质量问题,以便于对整个公司的业务情况有大致的了解. ...

  8. 谈谈我对Ext的认识,元芳,你怎么看

    实用Ext第一步当然是引用jar包啦. 下载地址 在页面上加上div用于显示这也是必须的 <div id='loginpanel' ></div> 在js中我们肯定需要将Ext ...

  9. Spring.Net 依赖注入

    一.Spring.Net概念 编程模型(Ioc,DI方式) IoC:控制反转 原来创建对象的权利由程序来控制就是new实例,IoC就是改由容器来创建,相当于一个工厂, DI:依赖注入 没有IoC就没有 ...

  10. Java相关|Code Review Checklist(Server)

    安全 所有入参均经过校验,包括验证参数数据类型.范围.长度,尽可能采用白名单形式验证所有的输入.对于非法请求,记录WARN log.参考Input Validation Cheat Sheet:前后端 ...