Java—IO流 File类的常用API

  • File类

  1.只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。

package cn.test;

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

public class Demo16 {

    public static void main(String[] args) {
        File file = new File("F:\\javaio");
        //文件(目录)是否存在
        if(!file.exists()) {
            //创建目录
            file.mkdir();//file.mkdirs();
        } else {
            //文件(目录)删除
            file.delete();
        }
        //是否是目录 如果是目录返回true,如果不是目录或目录不存在返回false
        System.out.println(file.isDirectory());
        //是否是文件
        System.out.println(file.isFile());
        
        //File file2 = new File("F:\\java\\日记1.txt");
        File file2 = new File("F:\\javaio", "日记2.txt");
        if (!file2.exists()) {
            try {
                //创建文件
                file2.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            file2.delete();
        }
        
        System.out.println(file);
        System.out.println(file.getAbsolutePath());//返回绝对路径
        System.out.println(file.getName());//目录名称
        System.out.println(file2.getName());//文件名称
        System.out.println(file.getParent());//父级目录的路径
        System.out.println(file.getParent());//父级目录的路径
    }

}

   2.遍历目录

package com.test.io;

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

/**
 * File类的常用操作
 * @author Administrator
 *
 */
public class FileUtils {
    /**
     * 列出指定目录下(包括其子目录)的所有文件
     * @param dir
     * @throws IOException
     */
    public static void listDirectory(File dir) throws IOException{
        if (!dir.exists()) {
            throw new IllegalArgumentException("目录" + dir + "不存在");
        }
        if (!dir.isDirectory()) {
            throw new IllegalArgumentException(dir + "不是目录");
        }
        
        /* String[] filenames = dir.list();//返回的是字符串数组,列出当前目录下的子目录和文件(不包含子目录下的内容)
        for (String string : filenames) {
            System.out.println(dir + "\\" +string);
        } */
        
        //如果要遍历子目录下的内容,就需要构造File对象做递归操作
        File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象
        if (files != null && files.length > 0) {
            for (File file : files) {
                if (file.isDirectory()) {
                    //递归
                    listDirectory(file);
                } else {
                    System.out.println(file);
                }
            }
        }
    }
}

  

posted @ 2017-05-05 22:56  tianxintian22  阅读(1369)  评论(0编辑  收藏  举报