目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率。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"

获取属性和操作

借助 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】判断输入的绝对路径是代表一个文件或一个目录。若是文件输出此文件的绝对路径,并判断此文件的文件属性(是否可读写或隐藏);若是目录则输出该目录下所有文件(不包括隐藏文件)。
//********** ep10_11.java **********
import java.io.*;
class ep10_11{
public static void main(String args[]) throws IOException{
String FilePath;
InputStreamReader in=new InputStreamReader(System.in);
BufferedReader a=new BufferedReader(in);
System.out.println("请输入一个绝对路径:");
FilePath=a.readLine(); //将 FilePath 作为输入值
File FileName=new File(FilePath); //获得此路径的文件名称
if (FileName.isDirectory()){ //判断此文件是否为目录
System.out.println((FileName.getName())+"为一个目录");
System.out.println("================");
File FileList[]=FileName.listFiles(); //将目录下所有文件存入数组
for(int i=0;i<FileList.length;i++){
if(FileList[i].isHidden()==false){ //判断是否为隐藏文件
System.out.println(FileList[i].getName()); //输出非隐藏文件
}
}
}
else{
System.out.println((FileName.getName())+"为一个文件");
System.out.println("================");
//获得文件绝对路径
System.out.println("绝对路径为:"+FileName.getAbsolutePath());
//判断此文件是否可读取
System.out.println(FileName.canRead()?"可读取":"不可读取");
//判断此文件是否可修改
System.out.println(FileName.canWrite()?"可修改":"不可修改");
//判断此文件是否为隐藏
System.out.println(FileName.isHidden()?"为隐藏文件":"非隐藏文件");
}
}
}

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


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

Java知多少(71)文件与目录管理的更多相关文章

  1. Linux 的基本操作(文件与目录管理)

    文件与目录管理 在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件 ...

  2. Linux 文件与目录管理,Linux系统用户组的管理

      一.Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什 ...

  3. 【CentOS】文件与目录管理

    一.文件与目录管理 0.cd--change directory cd -  返回上次的目录 cd ~ 返回到家目录 --对于root用户来说是/root,对于普通用户来说是/home/用户名 cd ...

  4. Linux 文件与目录管理

    Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对 ...

  5. Java学习-043-获取文件在目录中的路径

    我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名.在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现. 获 ...

  6. Linux命令工具基础02 文件及目录管理

    文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理 ...

  7. CentOS学习笔记--基本命令--文件与目录管理

    Linux基本命令--文件与目录管理 本节节选自鸟哥的 Linux 私房菜 -- 基础学习篇目录  第七章.Linux 文件与目录管理  ls(文件与目录的检视) ls命令就是list的缩写,ls可以 ...

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

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

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

       接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 & ...

  10. [Linux] Linux学习笔记(5)-文件与目录管理

    1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录&quo ...

随机推荐

  1. Cocos2d-X开发教程-捕鱼达人 Cocos2-x development tutorial - fishing talent

    Cocos2d-X开发教程-捕鱼达人 Cocos2-x development tutorial - fishing talent 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱 ...

  2. BZOJ.2639.矩形计算(二维莫队)

    题目链接 二维莫队,按x,y坐标一起分块.(x,y)的所属的块为 x/sq(n)*sq(m) + y/sq(m) 排序时按照(左下点所在块,右上点的标号)排序 排序后 先得出一个询问的答案,然后利用上 ...

  3. Python3NumPy——常用函数

    Python3NumPy的常用函数 1. txt文件 (1) 单位矩阵,即主对角线上的元素均为1,其余元素均为0的正方形矩阵. 在NumPy中可以用eye函数创建一个这样的二维数组,我们只需要给定一个 ...

  4. php parse_url 解析URL并返回其组成部分

    [导读] php parse_url 函数教程parse_url ( PHP 4中, PHP 5中) parse_url -解析URL并返回其组成部分 描述 混合parse_url (字符串$网址[摘 ...

  5. C++ 类模板基础知识

    类模板与模板类 为什么要引入类模板:类模板是对一批仅仅成员数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类 ...

  6. 关于redis与memcached区别(转载自stackoverflow)

    转载自:http://stackoverflow.com/questions/10558465/memcached-vs-redis Updated 10/9/2014 Today marks the ...

  7. ADC and DAC Analog Filters for Data Conversion

    Figure 3-7 shows a block diagram of a DSP system, as the sampling theorem dictates it should be. Bef ...

  8. Java并发(理论知识)—— 线程安全性

    1.什么是线程安全性                                                                                      当多个线 ...

  9. JSON数据之使用Fastjson进行解析(一)

    据说FastJson是目前最快的解析Json数据的库,而且是国人开发出来的开源库.顶一下,付上官方网址:http://code.alibabatech.com/wiki/pages/viewpage. ...

  10. c++数组的引用

    引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样.引用的声明方法:类型标识符 &引用名=目标变量名: 引用最大的好处就是提高函数效率以及节省空间; 关键问题一.传递引用 ...