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

java中的File

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

java中的File

操作数组的工具类:Arrays;Arrays数组
操作集合工具类:collections; Collection集合

    Collections是一个操作set list map等集合的工具类Collections中提供了一系列静态的方法对集合进行排序,查询等操作

排序操作:

    sort(List);根据元素的自然排序对指定的list集合按照顺序排序sort(List,Comparator);根据指定comparator产生的顺序对集合list进行排序reverse(List);反转list集合中的元素shuffle(List);对list集合的元素随机排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Objects;

public class CollectionsDemo01 {
    public static void main(String[] args) {
        ArrayList list=new ArrayList();
        list.add("666");
        list.add("111");
        list.add("222");
        list.add("333");
        list.add("555");
        System.out.println("排序之前:"+list);
        Collections.sort(list);//无返回值  根据元素的自然排序对指定的list集合按照升序排序
        System.out.println("排序之后:"+list);
        Collections.reverse(list);
        System.out.println("反转之后:"+list);
        Collections.shuffle(list);
        System.out.println("随机之后:"+list);
        
    }
}
class Student{
     String name;
     int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + ''' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return age == student.age &&
                Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

IO流(Input输入/Output输出)
用来操作文件内容的技术,输入和输出都是针对程序来说的,以程序为主

假设需要将D盘中的dd.txt文件中的内容读取到java程序中来(Input输入)假设程序需要将字符串写入到D盘中的dd.tet文件(Output)I(Input):从文件中读取内容到程序中O(Output):从程序中将数据写到文件中

File类(文件类):

    java.io.file类:文件和文件路径的抽象表现形式(一个File对象可以用来表示一个文件或目录)File能新建/删除/重命名文件或目录,但是不能访问文件中的内容如果需要访问文件内容本身,需要使用IO流操作

File构造方法:

    绝对路径:包含盘符在内的文件或者目录的路径相对路径:相较于某个路径下指明的路径

File(String filepath);以filepath为路径创建File对象,可以是绝对路径也可以是相对路径File(String parentPath,String childPath);以parentPath为父路径,以childPath为子路径创建File对象File(String file,String childPath);根据一个父file对象和一个子文件路径创建File对象

import java.io.File;
public class FileDemo01 {
    public static void main(String[] args) {
        //  File(String filepath);
        //1.
        //只创建了一个对象,  不会考虑路径是否正确,只有在操作时才会检查路径是否正确
        File file=new File("D:\JavaDemo2022-213\demo.txt");

        //指的是该项目路径下的vip09.txt文件对象
        File file1=new File("Vip09.txt");

        //2.
        File file2=new File("D:\JavaDemo2022-213","demo.txt");

        //3.
        File file3=new File("D:\JavaDemo2022-213");
        File file4=new File(file3,"demo.txt");
    }
}

File普通方法:

    创建/删除

        创建:对应的文件或者目录
        boolean createNewFile();
            创建文件,如果指定路径下的文件存在,则不创建返回false;
            指定路径下文件不存在,则创建并返回true
            指定文件的父级目录必须存在;否者提示父级目录找不到!!!
        boolean mkdir();创建文件目录 如果此文件上层目录不存在,则创建失败,返回false
        boolean mkdirs();创建文件目录如果此文件目录的上级目录不存在,一并创建,并返回true
    

    删除硬盘中相对应的文件或者目录

    	boolean delete();一定是空目录才可以删除!!
    
import java.io.File;
import java.io.IOException;

public class FileDemo02 {
    public static void main(String[] args) throws IOException {
//        File file=new File("D:\Dee\demo.txt");
        File file1=new File("JavaDemo2022-213.txt");
//        System.out.println("file:"+file.createNewFile());//false  该路径不存在
        System.out.println("file1:"+file1.createNewFile());//true
        System.out.println("马上删除file1:"+file1.delete());//true,删除指定的文件

        File file2=new File("D:\aa\bb\cc");
        File file3=new File("D:\aa\bb\cc");
        System.out.println("使用mkdir创建目录:"+file3.mkdir());//false
        System.out.println("使用mkdirs创建目录:"+file2.mkdirs());//true
        
        System.out.println("使用delete删除file3:"+file3.delete());//一定是空目录才可以删除!!
    }
}

    获取

    绝对路径:  String getAbsolutePath();
    获取路径:  String  getPath();获取的是创建File对象填入的路径
    获取文件名: String  getName();获取文件或目录的名字
    获取文件的上层目录
    String getParent() 根据创建的对象时填入的路径
    获取文件的长度(不能获取目录的长度) Long length();
    
import java.io.File;
import java.io.IOException;

public class FileDemo03 {
    public static void main(String[] args) throws IOException {
        File file=new File("vip09.txt");
        file.createNewFile();
        System.out.println(file.getAbsolutePath());//返回一个路径
        File file1=new File("D:\aa\bb\cc");
        System.out.println("file的路径"+file.getPath());
        System.out.println("file1的路径"+file1.getPath());
        System.out.println("file的名字"+file.getName());
        System.out.println("file1的名字"+file1.getName());
        System.out.println("file的上层目录:"+file.getParent());
        System.out.println("file1的上层目录:"+file1.getParent());
        System.out.println("file的文件长度:"+file.length());


    }
}

    判断

    判断文件是否存在 boolean isFile()
    判断目录是否存在 boolean  isDirectory()
    判断是否存在    boolean   exists()
    
import java.io.File;

public class FileDemo04 {
    public static void main(String[] args) {
        File file=new File("vip09.txt");
        File file1=new File("D:\aa\bb\cc");
        //判断文件是否存在 boolean isFile()
        System.out.println("file文件是否存在:"+file.isFile());//file是一个文件返回true
        System.out.println("file1文件是否存在:"+file1.isFile());//file1是一个目录,所以返回一个false
        //判断目录是否存在 boolean isDirectory()
        System.out.println("file目录是否存在:"+file.isDirectory());//file是一个文件,返回false
        System.out.println("file1目录是否存在:"+file1.isDirectory());//file1是一个目录,返回true
        //判断是否存在 Boolean exists()
        System.out.println("判断file是否存在:"+file.exists());//file存在,返回true
        System.out.println("判断file1是否存在:"+file1.exists());//file存在,返回true

    }
}

    获取子目录

    String[] List();获取指定文件目录下所有文件或目录的名称
    File[] ListFiles();获取指定目录下所有的文件或目录对象
    
import java.io.File;

public class FileDemo05 {
    public static void main(String[] args) {
        File file=new File("D:\KuGou");
        //String[] list 获取指定目录下所有文件或目录的名称
//        String[] names=file.list();
//        System.out.println("list()获取D:\KuGou目录下所有文件的名字");
//        for (String a:names){
//            System.out.println(a);
//        }
        File[] files=file.listFiles();
        System.out.println("listFiles()获取D:\KuGou目录下所有文件的名字");
        for (File a:files) {
            System.out.println(a);
        }



    }
}

小测试:删除指定文件
该文件是为了测试而新建了: D:test1
请不要把路径设为盘符,删除是直接删除的,不经过回收站,一旦删除,本人无法解决!!!
不要直接使用代码删除文件,因为删除文件会直接删除,不会经过回收站!!!

import java.io.File;


public class Test {
    public static void main(String[] args) {
        File file=new File("D:\test\1");
        deleteFile(file);
    }
    public static void deleteFile(File file){
        //1.判断File对象对应的路径是否存在,不存在不删
        //file.exists()返回false表示不存在,不存在则方法结束,不删
        if (!file.exists()) {
            return;
        }
        //2.如果存在,判断File对象是目录还是文件
        if (file.isFile()) {//文件直接删除
            file.delete();
        }else if (file.isDirectory()){
            //4.如果是目录,获取目录下所有的文件或目录
            File[] files=file.listFiles();
            //5.遍历上述所有文件或目录
            for (File f:files) {
                deleteFile(f);//迭代
            }

        }
        
        file.delete();
        ///6.判断遍历File对象是否存在

    }
}

本人小白一枚,刚学习java,学习笔记可能有所错误,麻烦看见了请斧正,谢谢

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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