目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率。Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录。

每个 File 类对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息。通过调用 File 类提供的各种方法,能够创建、删除、重名名文件、判断文件的读写权限以及是否存在,设置和查询文件的最近修改时间等。不同操作系统具有不同的文件系统组织方式,通过使用 File 类对象,Java 程序可以用与平台无关的、统一的方式来处理文件和目录。

创建 File 类的对象

创建 File 类对象需要给出其所对应的文件名或目录名,File 类的构造方法如表 10-9 所示。

表 10-9 File 类的构造方法
构造方法 功能描述
public File(String path) 指定与 File 对象关联的文件或目录名,path 可以包含路径及文件和目录名
public File(String path, String name) 以 path 为路径,以 name 为文件或目录名创建 File 对象
public File(File dir, String name) 用现有的 File 对象 dir 作为目录,以 name 作为文件或目录名创建 File 对象
public File(UR ui) 使用给定的统一资源定位符来定位文件

在使用 File 类的构造方法时,需要注意下面几点:
(1)path 参数可以是绝对路径,也可以是相对路径,也可以是磁盘上的某个目录。
( 2)由于不同操作系统使用的目录分隔符不同,可以使用 System 类的一个静态变量System.dirSep,来实现在不同操作系统下都通用的路径。如:
    "d:"+System.dirSep+"myjava"+System.dirSep+"file www.qicaiyulept.cn "

获取属性和操作

借助 File 对象,可以获取文件和相关目录的属性信息并可以对其进行管理和操作。表 10-10列出了其常用的方法及说明。

表 10-10 File 的常用方法
方法 功能描述
boolean canRead() 如果文件可读,返回真,否则返回假
boolean canWrite() 如果文件可写,返回真,否则返回假
boolean exists() 判断文件或目录是否存在
boolean createNewFile() 若文件不存在,则创建指定名字的空文件,并返回真,若不存在返回假
boolean isFile() 判断对象是否代表有效文件
boolean isDirectory() 判断对象是否代表有效目录
boolean equals(File f) 比较两个文件或目录是否相同
string getName() 返回文件名或目录名的字符串
string getPath() 返回文件或目录路径的字符串
long length() 返回文件的字节数,若 File 对象代表目录,则返回 0
long lastModified() 返回文件或目录最近一次修改的时间
String[] list() 将目录中所有文件名保存在字符串数组中并返回,若 File 对象不是目录返回 null
boolean delete() 删除文件或目录,必须是空目录才能删除,删除成功返回真,否则返回假
boolean mkdir() 创建当前目录的子目录,成功返回真,否则返回假
boolean renameTo(File newFile) 将文件重命名为指定的文件名

【例 10-11】判断输入的绝对路径是代表一个文件或一个目录。若是文件输出此文件的绝对路径,并判断此文件的文件属性(是否可读写或隐藏);若是目录则输出该目录下所有文件(不包括隐藏文件)(查看源代码)。

运行结果如图 10-11 所示:


图 10-11  输入一个文件路径后例 10_11 的运行结果

八. 输入输出(IO)操作6.文件与目录管理的更多相关文章

  1. 八. 输入输出(IO)操作7.文件的随机读写

    Java.io 包提供了 RandomAccessFile 类用于随机文件的创建和访问.使用这个类,可以跳转到文件的任意位置读写数据.程序可以在随机文件中插入数据,而不会破坏该文件的其他数据.此外,程 ...

  2. 八. 输入输出(IO)操作8.文件的压缩处理

    Java.util.zip 包中提供了可对文件的压缩和解压缩进行处理的类,它们继承自字节流类OutputSteam 和 InputStream.其中 GZIPOutputStream 和 ZipOut ...

  3. 八. 输入输出(IO)操作5.面向字节流的应用

    文件输入输出流 文件输入输出流 FileInputStream 和 FileOutputStream 负责完成对本地磁盘文件的顺序输入输出操作. [例 10-5]通过程序创建一个文件,从键盘输入字符, ...

  4. 八. 输入输出(IO)操作1.输入输出基本概念

    输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息, ...

  5. 八. 输入输出(IO)操作4.面向字节的输入输出流

    字节流以字节为传输单位,用来读写8位的数据,除了能够处理纯文本文件之外,还能用来处理二进制文件的数据.InputStream类和OutputStream类是所有字节流的父类. InputStream类 ...

  6. 八. 输入输出(IO)操作2.面向字符的输入流

    字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用 ...

  7. 八. 输入输出(IO)操作3.面向字符的输出流

    面向字符的输出流都是类 Writer 的子类,其类层次结构如图 10-5 所示. 图10-5 Writer的类层次结构图 表 10-3 列出了 Writer 的主要子类及说明. 表 10-3 Writ ...

  8. Java基础 IO流的文件和目录的五类主要操作

    笔记: /** IO流的 文件和目录的操作 * 1.路径需要 需要两个反斜杠 或者一个单斜杠! * 绝对路径:包括盘符在内的完整的路径名! * 相对路径:在当前目录文件下的路径! * 2.File 是 ...

  9. CentOS(十)--与Linux文件和目录管理相关的一些重要命令②

    在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Lin ...

随机推荐

  1. oracle 隔离级别、事务怎么开始的以及如何查看数据库采用字符集

    把一下语句全部粘贴至控制台运行后可以查看oracle 隔离级别 declare trans_id ); begin trans_id := dbms_transaction.local_transac ...

  2. Java系列学习说明

    最近要回顾以前的开发知识了,每天一个案例,争取早日成为一名合格的程序猿,现在就是猴娃子级别的.

  3. Android记事本10

    昨天: 从Activity中返回数据. 请求码和结果码的作用. 今天: Activity的启动模式. 遇到的问题: 无.

  4. aes加密码

    js地址 https://github.com/yves8888/crypto-js 下面src<!DOCTYPE html> <html lang="en"&g ...

  5. Codeforces 165E Compatible Numbers(二进制+逆序枚举)

    E. Compatible Numbers time limit per test 4 seconds memory limit per test 256 megabytes input standa ...

  6. NOI退役啦

    没进前一百 签的上交一本 高三加油喽

  7. java实现短连接

    现在比较流行短连接,例如新浪微博,腾讯等等公司都开始使用短连接. ① 将长网址用md5算法生成32位签名串,分为4段,,每段8个字符: ② 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串 ...

  8. struts2的ajax支持

    struts2支持一种stream类型的Result,这种类型的Result可以直接向客户端浏览器响应二进制,文本等, 我们可以再action里面生成文本响应,然后在客户端页面动态加载该响应即可. 直 ...

  9. [CQOI2018]异或序列 (莫队,异或前缀和)

    题目链接 Solution 有点巧的莫队. 考虑到区间 \([L,R]\) 的异或和也即 \(sum[L-1]~\bigoplus~sum[R]\) ,此处\(sum\)即为异或前缀和. 然后如何考虑 ...

  10. NGINX: 优化 use 参数

    转自:http://blog.sina.com.cn/s/blog_5eaf88f10100gkrq.html Nginx use参数分析对比 下图对比了poll select epoll和kqueu ...