目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率。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. 蓝牙扫描工具btscanner修复暴力扫描模式

    蓝牙扫描工具btscanner修复暴力扫描模式   在btscanner 2.1-5版本中,当用户按下快捷键b,执行暴力扫描模式,会出现程序奔溃问题.该问题现在已经修复.用户只需要更新系统,将btsc ...

  2. 潭州课堂25班:Ph201805201 爬虫高级 第六课 sclapy 框架 中间建 与selenium对接 (课堂笔记)

    因为每次请求得到的响应不一定是正常的,   也可以在中间建中与个类的方法,自动更换头自信,代理Ip, 在设置文件中添加头信息列表, 在中间建中导入刚刚的列表,和随机函数 class UserAgent ...

  3. Servlet中的过滤器

    在web.xml中配置:(用eclipse工具,可以在创建filter的时选择,web.xml中的配置可以自动生成) <filter> <display-name>LoginF ...

  4. AngularJS中自定义有关一个表格的Directive

    本篇体验在AngularJS中自定义一个有关表格的Directive.表格的需求包括: ● 表格结构 <table>    <thead>        <tr>  ...

  5. HTML和CSS中判断IE版本并实现相应HTML和CSS

    在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了. 1.HTML代码中 经过本人测试,在HTML代 ...

  6. SoapUI Pro Project Solution Collection-Test Step Object

    Package com.eviware.soapui.model.testsuite used for access the current testsuite object, like test c ...

  7. gitlab Docker容器创建命令以及从容器中备份gitlab仓库示例

    Gitlab容器启动命令: docker run -d --name gitlab --publish : --publish : --hostname gitlab-server --volume ...

  8. Microsoft/Git-Credential-Manager-for-Mac-and-Linux

    纠正Mac上的错误: Fatal: java.lang.Error encountered. Details: unexpected errorfatal: credential helper '!/ ...

  9. 浅谈常用的几种web攻击方式

    一.Dos攻击(Denial of Service attack) 是一种针对服务器的能够让服务器呈现静止状态的攻击方式.有时候也加服务停止攻击或拒绝服务攻击.其原理就是发送大量的合法请求到服务器,服 ...

  10. 【Windows】Windows中解析DOS的for命令使用

    目录结构: contents structure [+] 简介 for /d ... in ... 案例 案例:打印C://根目录下所有的文件夹名称 案例:打印当前路径下,只有1-3个字母的文件夹名 ...