JAVA I/O--(2)
来源:互联网 发布:tensorflow 目标识别 编辑:程序博客网 时间:2024/04/29 07:01
获取文件的属性信息
概述:主要介绍如何获取文件的属性信息,包括文件的文件名、文件所在的目录、文件是否可读、是否可写、文件大小以及最后修改时间等。
关键技术部析:
通过java.io.File 类可以获取文件的属性信息。
①、 File类的构造方法可为相对或绝对路径,传入参数被当作File对象的抽象路径。File file = new File(“D:/dony/hello.txt”);
②、 File类的getName方法获得文件名,该文件名不包含路径信息。
③、 File类的getAbsolutePath方法获得文件的绝对路径。
④、 File类的isAbsolutePath方法判断File对象的抽象路径是否为绝对路径。
⑤、 File类的toURI方法获取File对象的URI,以 “file:”协议开头。
⑥、 isDirectory返回它是否指向目录,isFile方法返回它是否指向一个具体文件。
⑦、 exists方法返回它指向的文件是否存在。
列出指定目录下的文件
当File对象指向一个目录时,可以通过File对象来获取目录下的文件信息。
①、 File类的list方法返回该目录下所有文件(包含目录)的文件名
②、 … listFiles方法返回该目录下所有文件的File对象
③、 FilenameFilter是文件名过滤接口类,所有自定义的文件名过滤器必须实现该接口的accept方法。
实现方法:
import java.io.File;
import java.io.FilenameFilter;
a、 创建一个目录下的File类对象。File dirFile = new File(“D:/temp”);
b、利用户exists方法和isDirectory方法判断指定目录是否存在。
if(!dirFile.exists() || (!dirFile.isDirectory())
{}
c、 调查用File 的listFiles方法获取当前文件目录下的文件对象,是一个File数组,如果File是一个目录则递归调用listAllFiles方法。
listAllFiles(dirName)
{
File dirFile = new File(“dirName”);//如dirName = D:/temp;
File[] files = dirFile.listFiles();
for(int i = 0; i < files.length; i ++)
{
if(file[i].isFile())
{ 直接受输出文件 }
else if( file[i].isDirectory())
{ 为目录;listFileUtill.listAllFiles( files[i].getAbsolutePath());
}
}
列出目录中通过文件名过滤器过滤后的文件
实现程序:
import java.io.*;
public class FileTest
{
public static void main(String[] args) throws Exception
{
System.out.println("请输入文件后缀名,我将列出包含此后缀名的全部文件(不区分大小写):");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//你输入的文件后缀
String suffix = br.readLine();
//String suffix = ".doc";
//新建当前目录文件对象
File f = new File("G:/network");
//列取文件
FilenameFilter filter = new MyFilenameFilter(suffix);
File[] fs = f.listFiles(filter);// listFiles 方法指定文件过滤器对象,它只能返回能通过文件过滤器的File对象。
//打印输出
for(int i=0; i<fs.length; i++)
{
System.out.println(fs[i].getName());
}
}
}
//名称过滤器
class MyFilenameFilter implements FilenameFilter
{
private String suffix;
//用文件后缀名构造对象
MyFilenameFilter(String suf)
{
//为了不区分大小写,统一转换成小写
this.suffix=suf.toLowerCase();
}
public boolean accept(File dir, String name)
{
//为了不区分大小写,统一转换成小写后进行比较
return name.toLowerCase().endsWith(suffix);
}
}
- JAVA I/O--(2)
- java I/O系统2
- Java I/O系统----------- 标准I/O
- Socket Java I/O Socket I/O
- Java I/O (2): OutputStream分析
- 黑马程序员Java I/O系统2
- 【java基础】13.I/O:流2
- JAVA I/O
- 复习java: I/O
- Java I/O 体系
- java I/O流
- Java 标准I/O
- Java I/O系统
- Java I/O
- JAVA I/O--(3)
- JAVA I/O--(4)
- java i/o包
- JAVA I/O (一)
- 后面部分
- 装在U盘里的个人电脑
- 七秘诀工作效率与薪水翻番
- 他很累,他说:everything are problem
- 迷漫中
- JAVA I/O--(2)
- PHP学习之旅(Xnova研究)(一)
- Rails源代码分析(49):ActionView::Helpers::AssetTagHelper
- Dialog & Image....
- 用Visio画UML图 类结构图(基本篇)
- PHP学习之旅(Xnova研究)(二)
- PostgreSQL--SQL命令参考手册
- PHP学习之旅(Xnova研究)(三)
- 周总理的经典语录