Java知多少(71)文件与目录管理
目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率。Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录。
每个 File 类对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息。通过调用 File 类提供的各种方法,能够创建、删除、重名名文件、判断文件的读写权限以及是否存在,设置和查询文件的最近修改时间等。不同操作系统具有不同的文件系统组织方式,通过使用 File 类对象,Java 程序可以用与平台无关的、统一的方式来处理文件和目录。
创建 File 类的对象
创建 File 类对象需要给出其所对应的文件名或目录名,File 类的构造方法如表 10-9 所示。
| 构造方法 | 功能描述 |
|---|---|
| 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列出了其常用的方法及说明。
| 方法 | 功能描述 |
|---|---|
| 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)文件与目录管理的更多相关文章
- Linux 的基本操作(文件与目录管理)
文件与目录管理 在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件 ...
- Linux 文件与目录管理,Linux系统用户组的管理
一.Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什 ...
- 【CentOS】文件与目录管理
一.文件与目录管理 0.cd--change directory cd - 返回上次的目录 cd ~ 返回到家目录 --对于root用户来说是/root,对于普通用户来说是/home/用户名 cd ...
- Linux 文件与目录管理
Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对 ...
- Java学习-043-获取文件在目录中的路径
我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名.在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现. 获 ...
- Linux命令工具基础02 文件及目录管理
文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理 ...
- CentOS学习笔记--基本命令--文件与目录管理
Linux基本命令--文件与目录管理 本节节选自鸟哥的 Linux 私房菜 -- 基础学习篇目录 第七章.Linux 文件与目录管理 ls(文件与目录的检视) ls命令就是list的缩写,ls可以 ...
- CentOS(十)--与Linux文件和目录管理相关的一些重要命令②
在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Lin ...
- CentOS(九)--与Linux文件和目录管理相关的一些重要命令①
接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 & ...
- [Linux] Linux学习笔记(5)-文件与目录管理
1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录&quo ...
随机推荐
- BZOJ.2229.[ZJOI2011]最小割(最小割树)
题目链接 题意:给定一张无向图,求任意两点之间的最小割. 在所有点中任选两个点作为源点\(S\).汇点\(T\),求它们之间的最小割\(ans\),并把原图分成两个点集\(S',T'\),用\(ans ...
- Python图形编程探索系列-09-tkinter与matplotlib结合案例
案例1 案例来自于:https://bbs.csdn.net/topics/390326088 代码示例: import matplotlib matplotlib.use('TkAgg') from ...
- 重写alert方法,去掉地址显示
//重写alert方法,去掉地址显示window.alert = function(name){ var iframe = document.createElement("IFRAME&qu ...
- mybatis批量插入数据
Mybatis在执行批量插入时,如果使用的是for循环逐一插入,那么可以正确返回主键id.如果使用动态sql的foreach循环,那么返回的主键id列表,可能为null,这让很多人感到困惑:本文将分析 ...
- 图文并茂 —— 基于Oozie调度Sqoop
利用大数据来做BI分析的时候,必不可少需要设置一些调度任务. 本篇就讲述一下如何利用hue来编辑shell操作,这里面的很多操作在其他的调度操作里面也是可以借鉴的. 如果是linux里面可以直接执行的 ...
- Android笔记(五):广播接收者(Broadcast Receiver)
Android有四大组件,分别为:Activity(活动).Service(服务).Content Provider(内容提供器).Broadcast Receiver(广播接收者). 引入广播的目的 ...
- IDA Pro Disassembler 6.8.15.413 (Windows, Linux, Mac)
IDA: What's new in 6.8 Highlights This is mainly a maintenance release, so our focus was on fixing b ...
- phpmyadmin更改密码
- ASP.NET Core中使用Razor视图引擎渲染视图为字符串(转)
一.视图渲染说明 在有些项目需求上或许需要根据模板生产静态页面,那么你一样可以用Razor语法去直接解析你的页面从而把解析的页面生成静态页,这样的使用场景很多,不限于生成静态页面,视图引擎为我们提供了 ...
- Maven项目搭建-Eclipse版
一.Maven简单介绍 Maven是基于Java平台的项目构建(mvn clean install).依赖管理(中央仓库,Nexus)和项目信息管理的项目管理工具. Maven是基于项目对象模型(PO ...