四、Java高级--5、IO包概述及两个文件系统处理的例子

2018-05-25  本文已影响0人  cybeyond

文件系统操作在java.io.File类中,下面演示几个常用的文件操作:

package javastudy;
import java.io.File;
import java.util.Calendar;

public class Test14 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //两种定义文件示例的方法
    //  File file=new  File("F:\\Java\\JavaTools\\jdk-8u65-windows-x64.exe"); //使用“/”进行转义
        File file=new File("F:\\Java\\JavaTools", "jdk-8u65-windows-x64.exe");
        StringBuilder str=new StringBuilder();
        Calendar ca=Calendar.getInstance();//使用此方法将时间格式转换,易于查看
        ca.setTimeInMillis(file.lastModified());
        str.append("文件的最后修改日期:"+ca.getTime().toLocaleString());//存在横线代表此方法已过时
        str.append("\n");
        str.append("文件的大小:"+file.length());
        str.append("\n");
        if(file.isDirectory()){
            str.append("类型:目录");
        }else{
            str.append("类型:文件");
        }
        System.out.println(str.toString());
    }
}
执行结果
package javastudy;

import java.io.File;

public class Test15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file=new File("e:\\");
        File[] files=file.listFiles(); //定义一个数组files来存放文件名
        for(File f:files){  //将files中的每一个文件交给f来处理
            if(f.isDirectory()){
                System.out.print("O");
            }else{
                System.out.print("X");
            }
            System.out.println("\t" + f.getPath());
        }
    }
}
执行结果
package javastudy;

import java.io.File;

import com.sun.webkit.ContextMenu.ShowContext;

public class Test15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String path="e:\\";
    Show(path);
    }
    static void Show(String path){
        File f=new File(path); //定义一个对象f
        File[] files=f.listFiles();//定义数组,将path路径定义的对象f列表文件,交由数据files存放
        for (File file:files){
            if(file.isFile()){
                if(file.getPath().toUpperCase().endsWith("TXT")){
                    System.out.println(file.getPath());
                }
                
            }else{ //如果不是文件,还是一个目录,那么要递归此目录
                Show(file.getPath());//是目录,在调用自己,直至遍历出所有文件
            }
        }
    
    }
}

通过执行结果发现,此时会报一个空指针的错误


执行结果

原因是系统自带的文件不能够被访问,因此需要将其去除掉

package javastudy;

import java.io.File;

import com.sun.webkit.ContextMenu.ShowContext;

public class Test15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String path="e:\\";
    Show(path);
    }
    static void Show(String path){
        //System.out.println("当前执行的路径是:"+path+"......");//显示在处理哪个文件夹
        if(path.endsWith("System Volume Information")){
            return;
        }
        File f=new File(path); //定义一个对象f
        File[] files=f.listFiles();//定义数组,将path路径定义的对象f列表文件,交由数据files存放
        for (File file:files){
            if(file.isFile()){
                if(file.getPath().toUpperCase().endsWith("TXT")){
                    System.out.println(file.getPath());
                }
                
            }else{ //如果不是文件,还是一个目录,那么要递归此目录
                Show(file.getPath());//是目录,在调用自己,直至遍历出所有文件
            }
        }
    
    }
}

执行结果中还会报一个空指针错误,原因是因为对是否为空没有做条件判断,即指向的字符对象如果为空值,就会报出空指针错误,但可以根据提示,添加相应的条件


执行结果
package javastudy;

import java.io.File;

import com.sun.webkit.ContextMenu.ShowContext;

public class Test15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String path="e:\\";
    Show(path);
    }
    static void Show(String path){
        //System.out.println("当前执行的路径是:"+path+"......");//显示在处理哪个文件夹
        if(path.endsWith("System Volume Information")||path.endsWith("~TAAA6E.cab")){
            return;
        }
        File f=new File(path); //定义一个对象f
        File[] files=f.listFiles();//定义数组,将path路径定义的对象f列表文件,交由数据files存放
        for (File file:files){
            if(file.isFile()){
                if(file.getPath().toUpperCase().endsWith("TXT")){
                    System.out.println(file.getPath());
                }
                
            }else{ //如果不是文件,还是一个目录,那么要递归此目录
                Show(file.getPath());//是目录,在调用自己,直至遍历出所有文件
            }
        }
    
    }
}
上一篇 下一篇

猜你喜欢

热点阅读