IO文件File练习

一、
  练习:判断com.test.filedemo目录下是否有后缀名为.java的文件
  如果有,统计该类型文件的个数并输出文件名称
          
  二、
  已知文件的路径为:C:\mygames.txt
  要求得到
          是否存在
          取得文件名
          取得文件路径
          得到绝对路径
          得到文件夹名
          判断文件是否存在
          判断文件是否可读,可写
          判断是否是目录
          判断是否是文件
          是否是绝对路径名称
          文件的最后修改时间
          文件的大小
 
  三、
      1.在本地磁盘D盘中创建一个iotest文件夹
      2.在文件夹中创建一个以自己名字的拼音组成的文件名
      3.获取创建的这个文件的最后修改日期并打印到控制台
      4.将创建的这些文件和文件夹全部删除

  四、
      从键盘输入接收一个文件夹路径,打印除该文件夹下所有的.java文件名

  五、 
    从键盘接收一个文件或者文件夹路径,删除该文件或者文件夹(删除该文件夹下所有的文件包括文件夹)
 
  

1

package w4day1.task;

import java.io.File;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 * 一、
 *  *   练习:判断com.test.filedemo目录下是否有后缀名为.java的文件
 *  *   如果有,统计该类型文件的个数并输出文件名称
 *  com\test\filedemo
 *  E:\ProgrammeSpace\idea2020.1\myStudySpace\myStudy3\src\w4day1
 *
 *
 */
public class Task1 {
    public static void main(String[] args) {
        File file0=new File("com\\test\\filedemo");
        File file1=new File("src\\w4day1\\.java");
        System.out.println(file0.exists());
        System.out.println(file1.exists());
        // 带参构造
        File file = new File("E:\\ProgrammeSpace\\idea2020.1\\myStudySpace\\myStudy3\\src\\w4day1");
        // 获取仅仅该目录下所有文件或者文件夹的File数组
        File[] fileArray = file.listFiles();
        int count=0;
        // 遍历该File数组,得到每一个File对象,然后判断
        for (File f : fileArray) {
            // 是否是文件
            if (f.isFile()) {
                //组合使用
                // 继续判断是否以.java结尾,第一个方法是File的,第二个是String的
                if (f.getName().endsWith(".java")) {
                    // 就输出该文件名称
                    System.out.println(f.getName());
                    count++;
                }
            }
        }
        System.out.println("该目录下有"+count+"个Java文件");
    }
}

2

package w4day1.task;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 * 二、
 *  *   已知文件的路径为:C:\mygames.txt
 *  *   要求得到
 *  *   		是否存在
 *  *   		取得文件名
 *  *   		取得文件路径
 *  *   		得到绝对路径
 *  *   		得到文件夹名
 *  *   		判断文件是否存在
 *  *   		判断文件是否可读,可写
 *  *   		判断是否是目录
 *  *   		判断是否是文件
 *  *   		是否是绝对路径名称
 *  *   		文件的最后修改时间
 *  *   		文件的大小
 */
public class Task2 {
    public static void main(String[] args) {
        File file=new File("C:\\mygames.txt");
//                *  *   		是否存在
        System.out.println("是否存在"+file.getParentFile().exists());
//                *  *   		取得文件名
        System.out.println("文件名"+file.getName());
//                *  *   		取得文件路径
        System.out.println("文件路径"+file.getPath());
//                *  *   		得到绝对路径
        System.out.println("绝对路径"+file.getAbsolutePath());
//                *  *   		得到文件夹名
        System.out.println("文件夹名"+file.getParent());
//                *  *   		判断文件是否存在
        System.out.println("文件是否存在"+file.exists());
//                *  *   		判断文件是否可读,可写
        System.out.println("文件是否可读,可写"+file.canRead());
        System.out.println("文件是否可读,可写"+file.canWrite());
//                *  *   		判断是否是目录
        System.out.println("是否是目录"+file.isDirectory());
//                *  *   		判断是否是文件
        System.out.println("是否是文件"+file.isFile());
//                *  *   		是否是绝对路径名称
        System.out.println("是否是绝对路径名称"+file.isAbsolute());
//                *  *   		文件的最后修改时间
        Date date=new Date(file.lastModified());
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd  HH:mm:ss");
        String dateStr=sdf.format(date);
        System.out.println("文件的最后修改时间"+dateStr);
//                *  *   		文件的大小
        System.out.println("文件的大小"+file.length());
    }
}

package w4day1.task;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 *    三、
 *  *   	1.在本地磁盘D盘中创建一个iotest文件夹
 *  *   	2.在文件夹中创建一个以自己名字的拼音组成的文件名
 *  *   	3.获取创建的这个文件的最后修改日期并打印到控制台
 *  *   	4.将创建的这些文件和文件夹全部删除
 *  E:\ProgrammeSpace\idea2020.1\myStudySpace\myStudy3\src\w4day1
 */
public class Task3 {
    public static void main(String[] args) {
//       file.mkdir();
        File file = new File("E:\\ProgrammeSpace\\idea2020.1\\myStudySpace\\myStudy3\\src\\w4day1\\iotest");
        //1、在本地磁盘D盘中创建一个iotest文件夹
        System.out.println("是否创建文件夹成功"+file.mkdir());//true
        //2、在文件夹中创建一个以自己名字的拼音组成的文件名
        File file2 = new File("E:\\ProgrammeSpace\\idea2020.1\\myStudySpace\\myStudy3\\src\\w4day1\\iotest\\Eastlin.txt");
        try {
            System.out.println(file2.createNewFile());//true
        } catch (IOException e) {
            e.printStackTrace();
        }
        //3、获取创建的这个文件的最后修改日期并打印到控制台
        File file3 = new File("E:\\ProgrammeSpace\\idea2020.1\\myStudySpace\\myStudy3\\src\\w4day1\\iotest\\Eastlin.txt");
        System.out.println(file3.lastModified());//1644323355925
        Date date = new Date(file3.lastModified());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月DD日 HH时mm分ss秒");
        String format = sdf.format(date);
        System.out.println(format);

        //4、将创建的这些文件和文件夹全部删除。
        //先删文件
//        System.out.println(file2.delete());//true
//        //再删空文件夹
//        System.out.println(file.delete());//true
    }
}

 4

package w4day1.task;

import java.io.File;
import java.util.Scanner;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 *  *   四、
 *  *   	从键盘输入接收一个文件夹路径,打印-出-该文件夹下所有的.java文件名
 *  应该不是除
 */
public class Task4 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String fileName;
        while(true){
            System.out.print("请正确输入路径:");
            fileName=input.next();
            File b =new File(fileName);
            if(fileName.contains("/")||b.exists()){//这"/"只是其中一个不合法,前者有点冗余了
                System.out.println("不合法或者不存在");
                continue;
            }
            else {
                break;
            }
        }
        File file=new File(fileName);
        File[] fileArray = file.listFiles();
        // 遍历该File数组,得到每一个File对象,然后判断
        for (File f : fileArray) {
            // 是否是文件
            if (f.isFile()) {
                //组合使用
                // 继续判断是否以.java结尾,第一个方法是File的,第二个是String的
                if (f.getName().endsWith(".java")) {
                    // 就输出该文件名称
                    System.out.println(f.getName());
                }
            }
        }
    }
}

5

package w4day1.task;

import java.io.File;
import java.util.Scanner;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 *  五、
 *  * 	从键盘接收一个文件或者文件夹路径,删除该文件或者文件夹(删除该文件夹下所有的文件包括文件夹)
 */
public class Task5 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String fileName;
        while (true) {
            System.out.print("请正确输入路径:");
            fileName = input.next();
            File b = new File(fileName);
            if (fileName.contains("/") || b.exists()) {//这"/"只是其中一个不合法,前者有点冗余了
                System.out.println("不合法或者不存在");
                continue;
            } else {
                break;
            }
        }
        File file = new File(fileName);
        deleteFile(file);
        System.out.println("文件夹已删除");
    }
    public static void deleteFile(File file){
        File[] files = file.listFiles();
        //如果文件夹下没有文件直接删除
        if(files.length==0){
            file.delete();
            return;
        }else{//不为空
            for(File f:files){
                if(f.isFile()){//是否文件
                    f.delete();
                }else{
                    //如果是目录递归调用
                    deleteFile(f);
                }
            }
        }
        //删除外层目录,已经空了
        file.delete();
    }
}

//        File[] listFiles()
//        返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
//        File[] listFiles(FileFilter filter)
//        返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
//        File[] listFiles(FilenameFilter filter)
//        返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值