首页 > 编程语言 >重学java 60.IO流 ① File类

重学java 60.IO流 ① File类

时间:2024-06-04 19:32:23浏览次数:19  
标签:重学 java String 路径 System 60 文件夹 File println

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

                                            —— 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

标签:重学,java,String,路径,System,60,文件夹,File,println
From: https://blog.csdn.net/m0_73983707/article/details/139425418

相关文章

  • 2024最新拼多多Java面试题(现场五面),全面涵盖Java高级到高并发,字节跳动java面试算法没
    总结其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。这里还有一份很不错的《Java基础核心总结笔记》,......
  • Java毕业设计 基于springboot vue大学新生报到系统
    Java毕业设计基于springbootvue大学新生报到系统SpringBoot大学新生报到系统功能介绍首页图片轮播报道流程流程详情校园公告公告详情登录注册个人中心更新信息学生后台登录个人中心修改密码个人信息学生报到班级分配宿舍分配缴费信息管理员登录个......
  • java中JDBC的实际使用注意事项
    连接被自动关闭:connectionisclose  如果你的jdbc写了这样的代码,就会出现第一次执行完次方法后自动关闭连接: 我的项目中使用连接池,所以连接不必关闭,有连接池做缓存。可以更改为try{Connectionconn=this.connection;xxxxxxxx}catch{xxxxxxxx}......
  • java项目部署脚本
    一、java项目部署脚本示例在Java项目中,部署脚本通常依赖于项目的构建工具(如Maven或Gradle)以及部署环境(如Docker、Tomcat、Kubernetes等)。以下是一个基于Maven和Shell脚本的Java项目部署示例,假设我们正在将应用部署到Linux服务器上的Tomcat容器中。1.前提条件Linux服务器已安......
  • java项目部署脚本
    一、java项目部署脚本示例在Java项目中,部署脚本通常依赖于项目的构建工具(如Maven或Gradle)以及部署环境(如Docker、Tomcat、Kubernetes等)。以下是一个基于Maven和Shell脚本的Java项目部署示例,假设我们正在将应用部署到Linux服务器上的Tomcat容器中。1.前提条件Linux服务器已......
  • Java读写xml文件
    前言使用dom4j库java读xml文件示例代码:SAXReadersaxReader=newSAXReader();Documentdoc=null;try{ FileInputStreamfin=newFileInputStream("D://doc_f/student.xml"); document=saxReader.read(fin); Elementroot=document.getRootElement();//获取......
  • Docker---java.sql.SQLNonTransientConnectionException: Could not create connectio
    文章目录一、问题场景二、问题分析及解决2.1问题分析2.2问题解决2.2.1有改动未重启容器2.2.2数据库配置不对三、结束一、问题场景使用docker容器控制数据库时,启动服务报错:java.sql.SQLNonTransientConnectionException:Couldnotcreateconnectiontodat......
  • java检测当前CPU负载状态的方法
    1.java检测当前CPU负载状态在Java中,直接检测CPU负载状态并不像在操作系统命令行中那样简单,因为Java标准库并没有直接提供这样的功能。但是,我们可以通过几种方法间接地获取CPU负载信息:(1)使用操作系统命令:我们可以通过执行特定的系统命令(如top、mpstat、uptime等)来获取CPU负载信息,......
  • javaScript高级23_BOM2
    一、概念BrowserObjectModel浏览器对象模型将浏览器的各个组成部分封装成对象。 二、组成Window:窗口对象Navigator:浏览器对象Screen:显示器屏幕对象History:历史记录对象Location:地址栏对象  三、Window:窗口对象1、创建2、方法1.与弹出框有关的......
  • java调用 RestTemplate post上传
    publicvoid方法名(){RestTemplaterestTemplate=newRestTemplate();Stringurl="http://目标地址";MultiValueMap<String,String>params=newLinkedMultiValueMap<>();params.add("post传输key",&qu......