文件的用法
一、文件用法
????? [1]File类位于Java.io包中,可以通过File对象的方法创建文件对象、删除文件、列表目录下的文件,判断文件是目录还是正是文件,文件系统的基本规则是:
???????? ?1、文件全名包含文件路径名和扩展名,单独讲一个文件名字时,是不带路径但带扩展名的文件名。
??????? ? 2、同一目录下不可能存在同名的目录和真实文件,系统主要有目录型文件和真是文件两种,真实文件可以没有扩展名,另还有不需计算的虚拟内存文件;
????????? 3、相对路径指不以文件分割符开头的文件路径,绝对路径是以根目录开头的路径,当前目录是指相对于程序运行时的目录算起的相对路径。
???????? ?4、liunx上,目录分隔符为/? 路径分隔符为:
??????????? ? 在windows 上,目录分隔符为\ 路径分隔符为;
?
????? [2]File类属性
????????? public static String pathSeparator:表示当前操作系统的路径分隔符
????????? public static String separator:表示当前操作系统的名字分隔符
??????[3]File类构造器
????????? File(File parent,String child)? 在父文件目录下创建名为child的子文件对象
????????? File(String pathname)?????????? 创建指向pathname名字下的文件对象
??????????File(String parent,String child)以parent字符串为父录名,创建一个指向pathname的File对象
????? [4]重要方法
????????? boolean exists(); 判断文件是否存在
????????? String getName();得到文件名字(不带路径)
??????????boolean isDirectory();判断File对象指向的文件是否为目录
????????? boolean isFile();判断File对象指向的文件是否为真实文件
????????? boolean mkdir();根据对象路径创建目录(仅可创建一级目录,且不能重名)
????????? boolean mkdirs();根据对象路径创建多级目录
??????????long length();得到File对象指向的文件长度
????????? boolean delete();从磁盘上删除File对象指定的文件
?
package File;/** * 统计文件个数方法 * @author Administrator * */import java.io.File;public class StatisticFile {public static void main(String []args){ StatisticFile sf = new StatisticFile(); String path = "E:\\java\\draw"; int num = sf.statistic( path); System.out.println("该目录下的文件个数共"+num); long space = sf.space(path); System.out.println("该目录下的文件大小为"+space); } /** * 统计指定路径下的标准文件个数 * @param path 给定路径 * @return 给定路径下的文件个数 */ public int statistic(String path){ int count = 0; //根据给定路径创造文件对象 File file = new File(path); //判断该路径是否存在 if(!file.exists()){ System.out.println("此文件路径不存在"); return 0; } //如果存在,装入数组中,并判断是目录还是文件 File[] fl = file.listFiles(); if(fl == null){ System.out.println("给定路径非目录!"); return 0; } //遍历数组,输出文件地址 for(int i=0;i<fl.length;i++){ //根据已知路径获取文件 File f = fl[i]; //得到文件路径 String str = f.getAbsolutePath(); //如果找到的是一个标准文件 if(f.isFile()){ System.out.println("找到一个文件"+str); count++; }else if(f.isDirectory()){ //如果找到的是一个目录 //递归调用 count+=statistic(str); } } return count; } /** * 统计指定目录下标准文件的总空间 * @param path 指定目录 * @return 文件的总空间 */ public long space(String path){ long sp = 0; //根据已知目录创造文件对象 File fl = new File(path); //判断该路径是否存在 if(!fl.exists()){ System.out.println("该路径不存在!"); return 0; } //如果存在,装入数组中 File [] f = fl.listFiles(); //判断给定路径是目录还是文件 if(f==null){ System.out.println("给定路径不是目录!"); return 0; } //存在,遍历文件 for(int i=0;i<f.length;i++){ //创建文件对象 File file = f[i]; //获取文件的路径 String str = file.getAbsolutePath(); if(file.isFile()){ //获取对象的大小 long lo = file.length(); System.out.println("文件"+str+"的大小是"+lo); sp+=lo; }else if(file.isDirectory()){ //递归调用 sp+=space(str); } } return sp; }}?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?