Java的简单文件操作

今天学习了java中关于文件的简单操作(主要是java.io.File类)。
1下面就是对于这个类中一些基本方法的简单试用:
//开始测试方法
//1.判断应用程序是否可以执行此抽象路径名表示的文件的方法
Boolean b =file.canExecute();
System.out.println("能否执行:"+b);

//2.判断应用程序是否可以读取此抽象路径名表示的文件
Boolean b1 =file.canRead();
System.out.println("能否读取:"+b1);

//3.判断应用程序是否可以修改此抽象路径名表示的文件
Boolean b2 =file.canWrite();
System.out.println("能否修改:"+b2);

System.out.println("---------传说中的分隔符---------");

//4.按字母顺序比较两个抽象路径名
//创建一个新的对象
String s = "D:\\hw\\test1.txt";
java.io.File f = new java.io.File(s);
int i=file.compareTo(f);
System.out.println("两个抽象路径名比较值i:"+i);

System.out.println("---------传说中的分隔符---------");

//5.创建新的空文件
String str1 = "D:\\hw\\test2.txt";
java.io.File file1 = new java.io.File(str1);
try{
Boolean b3 = file1.createNewFile();
System.out.println("是否创建新的空文件:"+b3);
}catch(Exception ef){
ef.printStackTrace();
}

//6.在默认临时文件/指定目录中创建一个空文件
String s1 = "test";
String s2 = ".txt";
String s3 = "D:\\hw";
java.io.File f3 = new java.io.File(s3);
try{
java.io.File f2 = file.createTempFile(s1, s2, f3);
String newfilename = f2.getName();
System.out.println("创建的新文件的名称为:"+newfilename);
}catch(Exception ef){
ef.printStackTrace();
}

System.out.println("---------传说中的分隔符---------");

//7.删除此抽象路径名表示的文件或目录
//新建用于删除的文件
//创建一个表示路径的字符串
String path1 = "D:\\hw\\forDelet.txt";
//创建一个file类的对象
java.io.File dfile = new java.io.File(path1);
try{
Boolean b4 = dfile.createNewFile();
System.out.println("用于删除的文件是否创建:"+b4);
}catch(Exception ef){
ef.printStackTrace();
}
Boolean b5 = dfile.delete();
System.out.println("是否删除:"+b5);

System.out.println("---------传说中的分隔符---------");

//8.在虚拟机终止时,请求删除此抽象路径名表示的文件或目录
// file.deleteOnExit();

//9.测试此抽象路径名与给定对象是否相等
Boolean b6 = file.equals(path);
System.out.println("抽象路径名与给定对象是否相等:"+b6);

//10.此抽象路径名表示的文件或目录是否存在
Boolean b7 = file.exists();
System.out.println("抽象路径名表示的文件或目录是否存在:"+b7);

System.out.println("---------传说中的分隔符---------");

//11.得到此抽象路径名的绝对路径名字符串
String path2 = file.getAbsolutePath();
System.out.println("得到的绝对路径名:"+path2);

//12.得到抽象路径名的规范路径名字符串
String path3 = null;
try {
path3 = file.getCanonicalPath();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("得到的规范路径名:"+path3);

System.out.println("---------传说中的分隔符---------");

//13.返回此抽象路径名指定的分区中未分配的字节数,大小和可用于虚拟机的字节数
long l = file.getFreeSpace();
long l1 = file.getTotalSpace();
long l2 = file.getUsableSpace();
System.out.println("此抽象路径名指定的分区中未分配的字节数:"+l);
System.out.println("此抽象路径名指定的分区的大小:"+l1);
System.out.println("此抽象路径名指定的分区中可用于虚拟机的字节数:"+l2);

System.out.println("---------传说中的分隔符---------");

//14.返回此抽象路径名父目录的路径名字符串
String parent = file.getParent();
System.out.println("此抽象路径名父目录的路径名:"+parent);

//15.将此抽象路径名转换为一个路径名字符串
String self = file.getPath();
System.out.println("此抽象路径名自己的路径名:"+self);

System.out.println("---------传说中的分隔符---------");

//16.计算此抽象路径名的哈希码
int i1 = file.hashCode();
System.out.println("此抽象路径名的哈希码:"+i1);

System.out.println("---------传说中的分隔符---------");

//17.测试此抽象路径名是否为绝对路径名,一个目录,一个标准文件,一个隐藏文件
Boolean bool = file.isAbsolute();
Boolean bool1 = file.isDirectory();
Boolean bool2 = file.isFile();
Boolean bool3 = file.isHidden();
System.out.println("此抽象路径名是否为绝对路径名:"+bool);
System.out.println("此抽象路径名是否为一个目录:"+bool1);
System.out.println("此抽象路径名是否为一个标准文件:"+bool2);
System.out.println("此抽象路径名是否为一个隐藏文件:"+bool3);

System.out.println("---------传说中的分隔符---------");

//18.此抽象路径名表示的文件最后一次被修改的时间
long lg = file.lastModified();
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd ");
String tsForm = formatter.format(new Date(lg));
System.out.println("此抽象路径名表示的文件最后一次被修改的时间:"+tsForm );

System.out.println("---------传说中的分隔符---------");

//19.此抽象路径名表示的文件的长度
long lg1 = file.length();
System.out.println("此抽象路径名表示的文件的长度:"+lg1 );

System.out.println("---------传说中的分隔符---------");

//20.返回一个字符串数组
String[] st = f3.list();
for(int j=0;j<st.length;j++){
System.out.println("返回的字符串数组元素"+j+":"+st[j] );
}

System.out.println("---------传说中的分隔符---------");

//21.列出可用的文件系统根
File[] file2 = file.listRoots();
System.out.println("列出可用的文件系统根:"+file2[0]+"和"+file2[1] );

//22.创建此抽象路径名指定的目录
String strg = "D:\\hw\\ashidiei\\test.txt";
java.io.File fil = new java.io.File(strg);
Boolean bl3 = fil.mkdirs();
System.out.println("能否创建此抽象路径名指定的目录:"+bl3 );

以下是上面程序的运行结果:
能否执行:true
能否读取:true
能否修改:true
---------传说中的分隔符---------
两个抽象路径名比较值i:-3
---------传说中的分隔符---------
是否创建新的空文件:false
创建的新文件的名称为:test1144645725744961767.txt
---------传说中的分隔符---------
用于删除的文件是否创建:true
是否删除:true
---------传说中的分隔符---------
抽象路径名与给定对象是否相等:false
抽象路径名表示的文件或目录是否存在:true
---------传说中的分隔符---------
得到的绝对路径名:D:\hw\test.txt
得到的规范路径名:D:\hw\test.txt
---------传说中的分隔符---------
此抽象路径名指定的分区中未分配的字节数:108894928896
此抽象路径名指定的分区的大小:251784011776
此抽象路径名指定的分区中可用于虚拟机的字节数:108894928896
---------传说中的分隔符---------
此抽象路径名父目录的路径名:D:\hw
此抽象路径名自己的路径名:D:\hw\test.txt
---------传说中的分隔符---------
此抽象路径名的哈希码:393268522
---------传说中的分隔符---------
此抽象路径名是否为绝对路径名:true
此抽象路径名是否为一个目录:false
此抽象路径名是否为一个标准文件:true
此抽象路径名是否为一个隐藏文件:false
---------传说中的分隔符---------
此抽象路径名表示的文件最后一次被修改的时间:2011-07-25
---------传说中的分隔符---------
此抽象路径名表示的文件的长度:256110
---------传说中的分隔符---------
返回的字符串数组元素0:ashidiei
返回的字符串数组元素1:test.txt
返回的字符串数组元素2:test1.txt
返回的字符串数组元素3:test1144645725744961767.txt
返回的字符串数组元素4:test1661996215436382998.txt
返回的字符串数组元素5:test2.txt
返回的字符串数组元素6:test3620162175496986765.txt
返回的字符串数组元素7:test5605088576018114347.txt
返回的字符串数组元素8:test8524408370878498663.txt
---------传说中的分隔符---------
列出可用的文件系统根:C:\和D:\
能否创建此抽象路径名指定的目录:false[/quote]
2.文件操作的简单应用---统计器与文件搜索器
1.文件统计的类
public void count(String path){
//创建文件对象
java.io.File f = new java.io.File(path);

//判断文件是否存在此
if(!f.exists()){
System.out.println("文件或文件夹不存在");
}else{
//判断次文件是否为文件夹
if(f.isDirectory()){
foldernum++;
//列出次文件夹下的所有的子文件目录
String[] str = f.list();
String st = f.getAbsolutePath();
for(int i=0;i<str.length;i++){
count(st+"\\"+str[i]);
}
}else{
filenum++;
size =size + f.length();
}
}
}

//显示数据的方法
public void showdata(){
System.out.println("文件夹数为:"+foldernum);
System.out.println("文件数为:"+filenum);
System.out.println("文件大小为:"+size);
}

2.文件搜索的类
public void search(String path,String s){
//创建文件对象
java.io.File f = new java.io.File(path);

//判断文件是否存在
if(!f.exists()){
System.out.println("文件或文件夹不存在");
}else{
//f的绝对位置
String st = f.getAbsolutePath();
//判断次文件是否为文件夹
if(f.isDirectory()){
//列出次文件夹下的所有的子文件目录
String[] str = f.list();
for(int i=0;i<str.length;i++){
search(st+"\\"+str[i],s);
}
}else{
int key = st.indexOf(s);
if(key!=-1){
System.out.println("文件找到,文件位置在:"+st);
}
}
}
}

3.测试它们的类
public static void main(String[] args) {

//创建统计文件类的对象
countFile cf = new countFile();
//创建文件搜索类的对象
searchFile sf = new searchFile();

String path = "D:\\hw";
String s = ".txt";

cf.count(path);
cf.showdata();

sf.search(path, s);
}

结果如下所示:
文件夹数为:3
文件数为:8
文件大小为:256120
文件找到,文件位置在:D:\hw\test.txt
文件找到,文件位置在:D:\hw\test1.txt
文件找到,文件位置在:D:\hw\test1144645725744961767.txt
文件找到,文件位置在:D:\hw\test1661996215436382998.txt
文件找到,文件位置在:D:\hw\test2.txt
文件找到,文件位置在:D:\hw\test3620162175496986765.txt
文件找到,文件位置在:D:\hw\test5605088576018114347.txt
文件找到,文件位置在:D:\hw\test8524408370878498663.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值