IO系列之三: 常用的情况

一,File类

File类位于java.io包下,用来表示文件(目录)。

File类只用于表示文件(目录)的信息(文件名称,文件大小),不能用于文件内容的访问

1,File的基本操作

package com.amazing.jdk.learn2IO_0821.FileAPI;

import java.io.File;
import java.io.IOException;

/**
 * Created by yaming on 17-8-21.
 */
public class FileDemo {
    public static void main(String[] args) {
        //window,linux系统文件分割符不同,可以使用File.separator设置分隔符。适用window和linux
        File fileSeparator=new File("e:"+File.separator+"javaio"+File.separator+"test");


        /**
         * 1,操作目录
         */
        File file=new File("/home/yaming/Desktop/filedemo");

        //查看目录是否存在,不存在就创建
        System.out.println(file.exists());

        if(!file.exists())
            file.mkdir();
        else
            file.delete();

        //判断是否是一个目录,如果是目录返回true.如果不是目录或目录不存在,返回false
        boolean flag1 = file.isDirectory();

        //判断是否是一个文件
        boolean flag2 = file.isFile();


        /**
         * 操作文件
         */
        //判断文件是否存在
        File file2=new File("/home/yaming/Desktop/日记.txt");
        //不存在就创建文件
        if (!file2.exists()){
            try {
                file2.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }else {
            file2.delete();
        }


        /**
         * 常用File对象的API
         */

        //打印file,打印的是file.toString()的内容
        System.out.println(file);

        //目录绝对路径
        System.out.println(file.getAbsoluteFile());

        //打印目录最后一级的名字
        System.out.println(file.getName());

        //打印文件名字
        System.out.println(file2.getName());

        //访问父目录,目录路径
        String parentPath = file.getParent();

    }
}

2,File类常用操作

遍历目录:

package com.amazing.jdk.learn2IO_0821.FileAPI;

import java.io.File;
import java.io.IOException;

/**
 * Created by yaming on 19-5-4.
 */
public class FileUtils {


    /**
     * 列出指定目录下(包括子目录)的所有文件
     * @param dir
     * @throws IOException
     */
    public static void listDirectory(File dir)throws IOException{

        if(!dir.exists()){
            throw new IllegalArgumentException("目录不存在");
        }

        if (!dir.isDirectory()){
            throw new IllegalArgumentException(dir+"不是目录");
        }

        File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象
        if (files != null && files.length >0){
            for (File file : files){
                if (file.isDirectory()){
                    //递归
                    listDirectory(file);
                }else {
                    System.out.println(file);
                }
            }
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/inspred/p/10810214.html
今日推荐