栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IO流--File类的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IO流--File类的使用

1.File类 1.1File类的理解
* File类的使用 java.io.file
* 1.File类的一个对象,代表一个文件或一个文件目录(文件夹)
* 2.File是声明在java.io包下
* 3.File类中的方法只能实现对文件或文件目录的创建、删除、重命名、修改时间的
* 并未涉及到写入或读取文件内容的操作。读取或写入文件内容要使用IO流来完成
1.2File类的实例化 1.2.1常用构造器
* File(String filePath)
* File(String parentPath,String childPath)
* File(File parentPath,String childPath)
		//构造器1
        //相对于当前module
        File file = new File("hello.txt");
        File file2 = new File("E:\JAVAee项目\IDEA\Java_Base\he.txt");
        System.out.println(file);
        System.out.println(file2);

        //构造器2
        File file3 = new File("E:\JAVAee项目\IDEA","Java_Base");
        System.out.println(file3);

        //构造器3
        File file4 = new File(file3,"hi.txt");
        System.out.println(file4);
1.2.2路径的分类
* 路径问题:
* 1.相对路径:相较于某个路径下,指明的路径
* 2.绝对路径:包含盘符在内的文件或文件目录的路径
说明:
IDEA:
如果大家开发使用JUit中的单元测试方法测试,相对路径为当前module
如果使用main()方法测试,相对路径为当前Project下
Eclipse中:
不管使用单元测试还是main()测试,相对路径都是当前的project下。
1.1.3路径分隔符
* 3.路径分隔符:win和dos中默认使用“”,linux下默认使用“/”
* public static final String separator。根据操作系统动态选择

File file3 = new File("E:"+File.separator+"\JAVAee项目\IDEA\Java_Base\he.txt");
1.3File类的常用方法
File file1 = new File("file\hello.txt");
File file2= new File("d:\io\hi.txt");

//1.获取绝对路径
System.out.println(file1.getAbsolutePath());
//2.获取路径
System.out.println(file1.getPath());
//3.获取名称
System.out.println(file1.getName());
//4.获取上层文件目录路径。若无返回null
System.out.println(file1.getParent());
//5.获取文件长度,字节数。不能获取目录的长度。
System.out.println(file1.length());
//6.获取文件最后一次修改的时间,毫秒值
System.out.println(file1.lastModified());
//7.如下两个方法适用于文件目录

File file3 = new File("E:\DownLoad\Google");
//获取文件名
String[] list = file3.list();
for (String s:list) {
    System.out.println(s);
}

System.out.println();
//获取文件
File[] files = file3.listFiles();
for(File file : files){
    System.out.println(file);
}
File file1 = new File("file\hello.txt");
File file2 = new File("D:\io\hi.txt");
boolean result = file1.renameTo(file2);
System.out.println(result);
File file1 = new File("file\hello.txt");
file1 = new File("hello.txt");
//1.判断是否是文件目录
System.out.println(file1.isDirectory());
//2.判断是否是文件
System.out.println(file1.isFile());
 //3.判断是否存在
System.out.println(file1.exists());
//4.判断是否可读
System.out.println(file1.canRead());
//5.判断是否可写
System.out.println(file1.canWrite());
 //6.判断是否隐藏
System.out.println(file1.isHidden());
//1.文件的创建
 File file = new File("file//hi.txt");
 if(!file.exists()){
     file.createNewFile();
     System.out.println("创建成功!");
 }
 else{
     file.delete();
     System.out.println("文件已删除!");
 }

 //2.文件目录的创建

 File file1 = new File("d:\io\io1");
 if(!file1.exists()){
     if(file1.mkdir()){
         System.out.println("创建成功1!");
     }
 }

File file2 = new File("d:\io\io3\io4");
if(!file2.exists()){
    if(file2.mkdirs()){
        System.out.println("创建成功2!");
    }
}
1.4文件练习
1.创建一个与file同目录下的另外一个文件,命名为:haha.txt
File file = new File("d:\io\io1\hello.txt");
File file1 = new File(file.getParent(),"haha.txt");
if(!file1.exists()){
    if(file1.createNewFile()){
        System.out.println("创建成功!");
    }
}
2.判断指定目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
//1.得到该文件目录下的所有文件名集合
File file = new File("d:\io\io1");
String[] nameList = file.list();
//2.使用endWith()方法判断
for(String name : nameList){
    if(name.endsWith(".jpg")){
        System.out.println(name);
    }
}
3.遍历指定文件目录所有文件名称 包括子文件目录中的文件
   3.1计算指定目录所占空间的大小
   3.2删除指定文件目录及其下的所有文件
@Test
public void test03(){
    //遍历指定文件目录所有文件名称 包括子文件目录中的文件
    //递归
    File file1 = new File("d:\io\io1");
    readDir(file1);

    //计算指定目录所占空间的大小
    System.out.println(length);
    
    //删除指定文件目录及其下的所有文件
    deleteDir(file1);
}

public void readDir(File file){
    if(file.isFile()){
        length += file.length();
        return;
    }
    else{
        File[] files = file.listFiles();
        for(File file1:files){
            if(file1.isFile()){
                length+=file1.length();
            }
            else{
                readDir(file1);
            }
        }
    }
}

public void deleteDir(File file){
    if(file.isFile()){//单个文件 直接删除
        file.delete();
    }
    else{
        File[] files = file.listFiles();
        for(File file1:files){//删除该文件夹下的所有文件
            if(file1.isFile()){
                file1.delete();
            }
            else{
                deleteDir(file1);
            }
        }
        file.delete();//删除该文件夹
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/952778.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号