Java基础IO类之File类

大三了,目前基础太差了,重新学习过!代码如下,里面都有详细的解释每一行代码代表的意思~

 

package IODemo;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class FileDemo {
    public static void main(String[] args) {

        // File表示一个文件或者目录
        //  "d:\\test\\test.txt" 或者 "d:/test/test.txt")

        File f1 = new File("d:\\test\\test.txt");
        if(!f1.exists()){  //判断该文件是否存在,如果不存在就创建
            try {
                f1.createNewFile(); // 创建该文件
                System.out.println("文件创建成功!");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        // f1.isDirectory()  如果是文件夹就返回 true 不是就返回false
        System.out.println("f1是否是文件:"+f1.isFile());

        File f2 = new File("d:\\test\\my"); // 这个路径中my文件夹 这个文件夹之中有文件
         boolean b =  f2.delete(); // 用变量b接受 看 删除的结果
        System.out.println("删除的结果是:"+b);   // 返回的是 false 没有删除这个文件夹,必须要删除这个文件夹里面的文件才可以删除这个文件夹

        String[] names = f2.list();//列出该目录下的所有文件名
        System.out.println( Arrays.toString(names));  //打印出String数组里面的东西

        File[] fs = f2.listFiles(); //列出当前目录下的所有文件,并且以file 对象返回
        for (File f :
                fs) {    // for循环的增强 就是说遍历File集合中的每一个File对象f
            System.out.println("lenght="+f.length());
            System.out.println("name="+f.getName());
            System.out.println("相对路径="+f.getPath());
            System.out.println("绝对路径="+f.getAbsolutePath());
            System.out.println("是否为隐藏文件="+f.isHidden());
            Date date = new Date(f.lastModified());// 获取文件的最后修改的日期  需要用日期类进行格式化
            DateFormat df = new SimpleDateFormat("HH:MM:SS");  // 格式化
            System.out.println("日期:"+df.format(date));
        }

        //文件夹的操作
        File f3 = new File("d:\\test\\wang");
        f3.mkdirs();  // mkdirs()是创建文件夹中的文件夹 都没有的情况下用     和mkdir()只创建一个没有的文件夹
        System.out.println("文件夹创建成功");

        //重命名 与移动 文件夹
      //  f3.renameTo(new File("d:\\test\\wang1"));
        //如果放到其他的地方的话就是 移动这个文件夹
        f3.renameTo(new File("d:\\wang"));


        
        // 补充f2 中的打印文件名 过滤器
        File f4 = new File("d:\\test\\my");
        File[] files = f4.listFiles(new FileFilter() { // new一个接口出来过滤
            @Override
            public boolean accept(File pathname) {
             return    pathname.getName().endsWith(".txt");  //过滤结尾为 txt的文件
            }
        });
        for (File f :
                files) {
            System.out.println(f.getName());
        }



    }
}

 

posted @ 2019-11-30 01:17  Mr.落魄书生  阅读(163)  评论(0编辑  收藏  举报