读书人

文件处理 File种的使用

发布时间: 2013-09-06 10:17:17 作者: rapoo

文件处理 File类的使用
File类:
File类位于与java.io包中,可以通过File对象的方法创建文件对象、删除文件、列表目录下的文件,
判断文件时目录还是正式文件,文件系统的基本规则是:
1、文件的全名字包括文件的路径名和扩展名,单独讲一个文件名字时,是不带路径但带扩展名的文件民。
2、同一目录下不可能存在同名的目录和真实文件,系统主要有目录类型的文件和真实文件两种,真实文件
可以没有扩展名,还有第三种我们不需要计算的。 如:虚拟内存文件;
3、相对目录指不以路径分隔符开头的的文件路径。绝对目录是指以根目录文件开头的路径;当前目录指相对
与程序运行时的目录算起的相对路径;
4、目录分隔符和路径分隔符在liunx和window平台上不同,前者为“/”和“:”,后者为“\”和“;”,
因此不要硬编码到程序中,而应使用File类提供的相应属性值。

File类说明具体可参考API文档说明

File类的构造器:
File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例
File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

File类的重要方法:
boolean createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

boolean delete()
删除此抽象路径名表示的文件或目录。

boolean exists()
测试此抽象路径名表示的文件或目录是否存在。

String getAbsolutePath()
返回此抽象路径名的绝对路径名字符串。

boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录 。

boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件。

long length()
返回由此抽象路径名表示的文件的长度。

String[] list()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

String getName()
返回由此抽象路径名表示的文件或目录的名称。

异常:异常情况指的是程序子啊运行时,可能由与外部条件变更而导致程序可能会出错的情况。

java中的异常概念被设计成一个类,java.lang包下的Exception类,异常有很多
种———都是Exception的子类

try catch 处理机制

try{
可能抛出异常的代码...
//如果没有问题处理,执行下面的代码
其他计算代码....
}
catch(Exception ef){
//如果出现异常后执行的代码
出了异常情况的计算代码.....
}


import java.io.File;import javax.swing.JTextArea;import javax.swing.JTextField;public class SearchFile extends Thread{private String path1,path2,path3;private JTextArea jta;//构造函数   引用传递public SearchFile(JTextArea jta,String path1,String path2,String path3){this.jta = jta;this.path1 = path1;this.path2 = path2;this.path3 = path3;}//线程执行入口:调用线程对象的start()方法后,线程就从它的run方法开始独立执行publicvoid  run(){long start = System.currentTimeMillis();//线程开始时间int filecount = this.printpath(path1);long timecost = (System.currentTimeMillis()-start)/1000;jta.append("用时:"+timecost+"秒\t"+"根目录"+path1+"下"+path2+path3+"文件个数:"+filecount+"\n");}//返回根目录下的文件个数并输出相应文件的路径 public int printpath(String path){int filecount=0;//定义一个文件个数变量File file = new File(path);//创建指定路径的文件对象File[] filelist = file.listFiles();//列表目录//判断是否指定路径的文件对象是否为空if(filelist==null){return filecount;}for(int i=0;i<filelist.length;i++){//遍历目录if(filelist[i].isDirectory()){//是目录String dirlist = filelist[i].getAbsolutePath();//得到该目录的绝对路径filecount+=printpath(dirlist);}//end 是目录if(filelist[i].isFile()){//是文件//判断path3是否为全部if(path3=="全部"){//取出该路径下的文件名String path1_1 ;String path1 = filelist[i].getAbsolutePath();int s = path1.lastIndexOf('\\');int e = path1.lastIndexOf('.');if(e>s){path1_1 = path1.substring(s+1, e);//System.out.println("文件名"+path1_1);}else {path1_1 = path1.substring(s+1);//System.out.println("文件名"+path1_1);}//判断path2是否为空if(!path2.isEmpty()){//判断文件名是否是path2if(path1_1.equals(path2)){filecount++;String filepath = filelist[i].getAbsolutePath();jta.append("文件:"+filepath+"\n");}}else{filecount++;String filepath = filelist[i].getAbsolutePath();jta.append("文件:"+filepath+"\n");}}//end if//如果是以path3结尾的文件else {if(filelist[i].getAbsolutePath().endsWith(path2+path3)){filecount++;String filepath = filelist[i].getAbsolutePath();jta.append("文件:"+filepath+"\n");}}}//end 是文件}//end  循环return filecount;} }

读书人网 >编程

热点推荐