重学java 60.IO流 字节流 ① File类

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

                                            —— 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// 如果要创建的文件之前没有,创建成功,返回trueFile file1 = new File("D:\\2LFE\\Desktop\\java\\一切都会好的.txt");System.out.println("file1.createNewFile() = " + file1.createNewFile());// boolean mkdirs() —> 创建文件夹(目录)既可以创建多级文件夹,还可以创建单级文件夹// 如果要创建的文件夹之前有,创建失败,返回false// 如果要创建的文件夹之前没有,创建成功,返回trueFile 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis不明白?就这一篇带你轻松入门

引言:烧脑的我一直在烧脑的寻找资料,寻找网课,历经磨难让一个在大一期间只会算法的我逐渐走入Java前后端开发,也是一直在自学的道路上磕磕碰碰,也希望这篇文章对于也是同处于自学的你有所帮助,也希望你继续…

三生随记——鬼影膏药

深秋的夜晚,寒风凛冽,月光苍白如纸,洒在寂静无声的小镇上。这个镇子名叫“影落镇”,镇上流传着一个关于神秘膏药的恐怖传说。 传说在百年前,镇上有一位名叫林鬼影的医师,他医术高超,却性格古怪&…

备考系统架构设计师,看这篇就够了!(包括核心总结、真题、论文、模拟试题索引)

注:以下章节核心总结来自最新版课本:系统架构设计师教程(第2版): https://url35.ctfile.com/f/52515535-1268514286-ca9b3a?p6235 ( 访问密码: 6235, 电子版 pdf 文件大小: 168.9 M ,需要的话可自行下载,…

开源模型应用落地-LangChain试炼-LCEL-表达式语言(一)

一、前言 尽管现在的大语言模型已经非常强大,可以解决许多问题,但在处理复杂情况时,仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而,现在可以利用langchain来使得模型的应用变得更加直接和简单。 LCEL是什么&…

最强总结!18个机器学习核心算法模型!!

前言 大家好~在学习机器学习之后,你认为最重要的算法模型有哪些?今儿的内容涉及到 线性回归逻辑回归决策树支持向量机朴素贝叶斯K近邻算法聚类算法神经网络集成方法降维算法 我把每种算法模型的核心公式和代码也列举了出来,如果有其他比较重…

喜讯丨泰迪智能科技实力中标“健康大数据与人工智能实验室建设”项目

泰迪智能科技以健康数据分析与应用为主题的实验中心,为学校大健康产业大数据与人工智能应用人才培养提供载体,并基于培养中心根据学生专业的不同,提供不同的健康大数据学习资源,实现健康大数据技术和数据分析应用能力培养普遍提升…

四川九旋电子商务有限公司引领行业创新风潮

在数字化浪潮席卷而来的今天,电商行业正经历着前所未有的变革。四川九旋电子商务有限公司,作为抖音电商领域的佼佼者,凭借其前瞻性的战略眼光和强大的执行能力,在竞争激烈的市场中脱颖而出,成为行业的领跑者。 九旋电…

CUDA12.0 + cuDNN9.0.0安装

目录 1. 查看显卡支持的CUDA版本1.1 指令查看1.2 控制面板查看 2. 安装CUDA2.1 下载2.2 安装2.3 验证 3. 安装cuDNN3.1 下载3.2 安装3.2 验证 1. 查看显卡支持的CUDA版本 1.1 指令查看 打开cmd输入nvidia-smiDriver Version表示显卡驱动版本,CUDA Version表示支持…

AC自动机(查询)

上面讲了AC自动机是如何建树和建自动机的,这里要讲的是AC自动机的查询和各个数组的功能和作用。 其实AC自动机的查询和KMP算法是及其相近的,都是一个指针跑主串,另一个指针跑ne串(这里就是回跳边)。 话都说到这了&…

行车记录仪人体感应雷达开关模块,飞睿智能雷达模块穿透玻璃、告别漏触烦恼,安防停车监控新方案

随着汽车保有量的持续增长,行车记录仪作为汽车安全配件的必备品,其重要性日益凸显。然而,传统的行车记录仪传感器在停车时往往存在无法穿透玻璃、漏触等问题,给车主带来了诸多不便和安全隐患。本文将深入探讨停车场景下&#xff0…

博客目录~

1、Jenkins构建打包部署前端Vue项目至Nginx-CSDN博客 2、https://blog.csdn.net/askuld/article/details/139429298 3、基于DockerJenkins实现自动部署SpringBootMaven项目-CSDN博客 4、时序数据库ClickHouse的安装使用_clickhouse安装使用-CSDN博客 5、Valid&#xff0c…

github用存在的私钥在Linux上配置免密登录

github用存在的私钥在Linux上配置免密登录 如题,githu的密钥需要再其他机器(linux)上使用,当然重新生成按照官网的步骤配置即可。 但是,我已经配置过密钥对,私钥我本地也有(windows),那么&#…

tomcat8w.exe指向了别的tomcat

这种情况通常发生是因为Tomcat服务在注册表中的配置指向了错误的可执行文件路径。tomcat8w.exe是一个Windows服务配置工具,它用于管理Tomcat服务,包括设置Path to executable,即指向Tomcat服务实际启动的.exe文件的路径。如果Path to executa…

技术周总结 2024.05.27~06.02(java bean冲突 软件工程)

文章目录 一、05.28 周二1.1)问题01:java 引用的jar包中bean名称冲突了,怎么解决?1.2)问题02:使用SparkSession将json字符串转成 DataFrame 二、06.01 周六2.1)问题01:系统架构师考试…

【ArcGISPro SDK】构建多面体要素

结果展示 每个面构建顺序 代码 using ArcGIS.Core.CIM; using ArcGIS.Core.Data; using ArcGIS.Core.Geometry; using ArcGIS.Desktop.Catalog; using ArcGIS.Desktop.Core; using ArcGIS.Desktop.Editing; using ArcGIS.Desktop.Extensions; using ArcGIS.Desktop.Framework;…

nginx location正则表达式+案例解析

1、nginx常用的正则表达式 ^ :匹配输入字符串的起始位置$ :匹配输入字符串的结束位置 *:匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” :匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“olll”…

Ubuntu server 24.04 (Linux) 搭建DNS服务器 通过Nginx实现UDP/TCP负载均衡 轻量级dnsmasq服务器

一 系统运行环境 testtest:~$ cat /etc/os-release PRETTY_NAME"Ubuntu 24.04 LTS" NAME"Ubuntu" VERSION_ID"24.04" VERSION"24.04 LTS (Noble Numbat)" VERSION_CODENAMEnoble IDubuntu ID_LIKEdebian HOME_URL"https://www.…

全域外卖项目能不能做?可行性分析来了!

作为新的网络热词,全域外卖的传播范围随着时间的推移而不断扩大,从最初的行业内部逐步扩散到多个创业者社区,让许多创业者都有了做全域外卖项目的想法。但是,由于全域外卖赛道刚兴起不久,因此,目前大多数人…

硬件高效的线性注意力机制Gated Linear Attention论文阅读

0x0. 前言 上篇文章 flash-linear-attention中的Chunkwise并行算法的理解 根据GLA Transformer Paper(https://arxiv.org/pdf/2312.06635 作者是这位大佬 sonta)通过对Linear Attention的完全并行和RNN以及Chunkwise形式的介绍理解了Linear Attention的…

Chrome浏览器打开无痕模式的方法

快捷键:同时按住CtrlshiftN 如图,系统会新开一个无痕标签页,不需要了点右上角关闭就可以了。