小工具知识网

当前位置: 首页 > 行业知识 > 重学java 60.IO流 ① File类

行业知识

重学java 60.IO流 ① File类

2026-11-11 23:45:26 来源:互联网转载

明年此日青云去,却笑人间举子忙

                                            —— 24.6.4

知识回顾

1 .HashMap

        a.特点:无序,无索引,key唯一,线程不安全,可以存null键null值

        b.数据结构:哈希表

        c.方法:put remove get keyset entryset values containsKey

2.LinkedHashMap :

        a.特点:有序,无索引,key唯一,线程不安全,可以存null键null值

        b.数据结构:哈希表+双向链表
3.key如何去重复:重写hashcode和equals方法

4.Treeset:是set接口实现类

        a.特点:对元素排序,无索引,元素唯一,线程不安全,不可以存null键null值

        b.构造:

                Treeset()

                Treeset(Comparator c)

5 .TreeMap :

        a.特点:对 key排序,无索引,key唯一,线程不安全,不可以存null键null值

        b.构造:

                TreeMap()

                TreeMap(Comparator c)I

6.Hashtable:是map接口的实现类

        a.特点:无序,无索引,key唯一,线程安全,不能存null键null值

        b.用法:和HashMap一样

        c.数据结构:哈希表

7.Vector:

        a、特点:有序、有索引、元素可重复、线程安全

        b、数据结构:数组

8.Properties:是Hashtable的子类

        a、特点:无序,无索引,key唯一,线程安全,不能存null键,null值,key和value都是String类型的

        b、特有方法:

                setProperty

                getProperty

                stringPropertyNames

                load(IO流对象) —> 将流中数据加载到集合中

一、File类

1.File类

概述:

        文件和目录(文件夹)路径名的抽象表示

简单理解:

        我们在创建File对象的时候,需要创建一个路径,这个路径指定为哪个文件或者文件夹上,我们的File就代表哪个对象        File file = new File("E:\Idea\io\File\1.jpg")

二、File类使用

1.File的静态成员

static String pathseparator:与系统有关的路径分隔符,为了方便,它被表示为一个字符串。 static String separator:与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。

import java.io.File;public class Demo259File {    public static void main(String[] args) {        file01();        System.out.println(file02());    }    // 将来写代码如何正确编写一个路径用java代码    private static String file02() {        String path1 = "D:\2LFE\Desktop\java\一切都会好的.txt";        return path1;    }    private static void file01() {        // static String pathseparator:与系统有关的 路径分隔符,为了方便,它被表示为一个字符串。        String pathSeparator = File.pathSeparator;        System.out.println(pathSeparator);        // static String separator:与系统有关的 默认名称分隔符,为了方便,它被表示为一个字符串。        String separator = File.separator;        System.out.println(separator);    }}

2.File的构造方法

① File(String parent,String child)

        File(String parent,String child) —> 根据所填写的路径创建File对象

                parent:父路径

                child:子路径

② File(File parent, String child)

        File(File parent, String child) —> 根据所填写的路径创建File对象

                parent:父路径,是一个File对象

                child:子路径

③  File(String pathname)

        File(String pathname) —> 根据所填写的路径创建File对象

                pathname:直接指定路径

import java.io.File;public class Demo260FileMethod {    public static void main(String[] args) {        // File(String parent,String child)根据所填写的路径创建File对象        File file1 = new File("D:\2LFE\Desktop\java","一切都会好的.txt");        System.out.println("file1: " + file1);        // File(File parent, String child)根据所填写的路径创建File对象        File parent = new File("D:\2LFE\Desktop\java");        File file2 = new File(parent,"一切都会好的.txt");        System.out.println("file2: " + file2);        // File(String pathname)根据所填写的路径创建File对象        File file3 = new File("D:\2LFE\Desktop\java\一切都会好的.txt");        System.out.println("file3: " + file3);    }}

细节:我们创建File对象的时候,传递的路径可以是不存在的,但是传递不存在的路径没啥意义

3.File的获取方法

String getAbsolutePath() —> 获取File的绝对路径 —> 带盘符的路径

String getPath() —> 获取的是封装路径 —> new File对象的时候写的啥路径,获取的就是啥路径

String getName() —> 获取的是文件或者文件夹名称

long length() —> 获取的是文件的长度 —> 文件的字节数

import java.io.File;public class Demo261FileGetMethod {    public static void main(String[] args) {        // String getAbsolutePath() —> 获取File的绝对路径 —> 带盘符的路径        File file1 = new File("一切都会好的.txt");        System.out.println("file1.getAbsolutePath() = " + file1.getAbsolutePath());        // String getPath() —> 获取的是封装路径->new File对象的时候写的啥路径,获取的就是啥路径        File file2 = new File("sjkjsk");        System.out.println("file2.getPath() = " + file2.getPath());        // String getName() —>获取的是文件或者文件夹名称        File file3 = new File("E:\java Sgg\JavaAllWillBest\我一直相信");        System.out.println("file3.getName() = " + file3.getName());        // long length() —> 获取的是文件的长度 —> 文件的字节数        File file4 = new File("D:\2LFE\Desktop\java\一切都会好的.txt");        System.out.println("file4.lenth() = " + file4.length());    // 15 字节 (15 字节)    }}

4.File的创建方法

boolean createNewFile() —> 创建文件

        如果要创建的文件之前有,创建失败,返回false

        如果要创建的文件之前没有,创建成功,返回true

boolean mkdirs() —> 创建文件夹(目录),既可以创建多级文件夹,还可以创建单级文件夹

        如果要创建的文件夹之前有,创建失败,返回false

        如果要创建的文件夹之前没有,创建成功,返回true

import java.io.File;import java.io.IOException;public class Demo262FileCreMethod {    public static void main(String[] args) throws IOException {        // boolean createNewFile() —> 创建文件        // 如果要创建的文件之前有,创建失败,返回false        // 如果要创建的文件之前没有,创建成功,返回true        File file1 = new File("D:\2LFE\Desktop\java\一切都会好的.txt");        System.out.println("file1.createNewFile() = " + file1.createNewFile());        // boolean mkdirs() —> 创建文件夹(目录)既可以创建多级文件夹,还可以创建单级文件夹        // 如果要创建的文件夹之前有,创建失败,返回false        // 如果要创建的文件夹之前没有,创建成功,返回true        File file2 = new File("D:\2LFE\Desktop\java\我一直相信\一切都会好的");        System.out.println("file2.mkdirs() = " + file2.mkdirs());    }}

5.File类的删除方法

boolean delete() —> 删除文件或者文件夹

注意:

        删除文件不走回收站,慎用

        如果删除文件夹,必须是空文件夹,且不走回收站

import java.io.File;public class Demo263FileDelMethod {    public static void main(String[] args) {        // boolean delete() —> 删除文件或者文件夹        File file = new File("一切都会好的");        System.out.println(file);        System.out.println(file.delete());        File file1 = new File("D:\2LFE\Desktop\java\我一直相信");        System.out.println("file2.delete(): " + file1.delete());        File file2 = new File("D:\2LFE\Desktop\java\我一直相信\一切都会好的");        System.out.println("file2.delete(): " + file2.delete());    }}

6.File类的判断方法

boolean isDirectory() —> 判断是否为文件夹

boolean isFile() —> 判断是否为文件

boolean exists() —> 判断文件或者文件夹是否存在

import java.io.File;public class Demo264FileJudMethod {    public static void main(String[] args) {        // boolean isDirectory() —> 判断是否为文件夹        File file1 = new File("D:\2LFE\Desktop\java\一切都会好的.txt");        System.out.println("file1.isDirectory() = " + file1.isDirectory());        // boolean isFile() —> 判断是否为文件        System.out.println("file1.isFile() = " + file1.isFile());        // boolean exists() —> 判断文件或者文件夹是否存在        System.out.println("file1.exists() = " + file1.exists());    }}

7.File类的遍历方法

注:只遍历一级文件夹

String[] list() —> 遍历指定的文件夹,返回的是String数组

File[] listFiles() —> 遍历指定的文件夹,返回的是File数组 —> 这个推荐使用(方法底层最终还是调用list方法遍历文件夹返回一个String数组,遍历数组,将数组中的内容一个个存储在File对象中,我们再将File对象存放在File数组中)

import java.io.File;public class Demo265FileForMethod {    public static void main(String[] args) {        // String[] list() —> 遍历指定的文件夹,返回的是String数组        File file1 = new File("D:\QQMusicCache");        String[] list = file1.list();        for (String s : list) {            System.out.println(s);        }        System.out.println("————————————————————————————————");                // File[] listFiles() —> 遍历指定的文件夹,返回的是File数组 —> 这个推荐使用        File[] files = file1.listFiles();        for (File file : files) {            System.out.println(file);        }    }}

8.相对路径和绝对路径

① 绝对路径:

        从盘符开始写的路径

                eg:E:\lideallioll1.txt

② 相对路径:

        不从盘符名开始写的路径

③ 针对idea中写相对路径:

        a.口诀:哪个路径是参照路径,哪个路径就可以省略不写,剩下的就是在idea中的相对路径写法

           在idea中参照路径其实就是当前project的绝对路径

        b.比如:在module21下创建了一个1.txt

           先找1.txt的绝对路径:E:\Idealidea2022\workspace\javase\module21\1.txt

           再找参照路径:E:\Idealidea2022\workspace\javase参照路径可以省略:module21\1.txt

④ 总结:

        在idea中写的相对路径,其实就是从模块名开始写

⑤ 注意:

        如果直接写一个文件名1.txt,它所在的位置默认是在当前project下

上一篇:ASP源码中的CRM系统实现亮点深度解析

下一篇:地下城手游服务器怎么下载?