重学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前后端开发,也是一直在自学的道路上磕磕碰碰,也希望这篇文章对于也是同处于自学的你有所帮助,也希望你继续…

开源模型应用落地-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…

tomcat8w.exe指向了别的tomcat

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

【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;…

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 如图,系统会新开一个无痕标签页,不需要了点右上角关闭就可以了。

STM32自己从零开始实操04:显示电路原理图

一、TFT-LCD 屏接口 1.1指路 以下是该部分的设计出来后的实物图,我觉得看到实物图可能更方便理解这部分的设计。 图1 实物图 这部分设计的是一个屏幕的接口,很简单。使用的屏幕是:2.8inch 16BIT Module MRB2801。 1.2数据手册 &#xff0…

uinty游戏界面模糊的解决方法

1.把低分辨率关掉 2.调缩放,不要调长宽高 3.调整画布的分辨率 4.调整图片的像素点

如何恢复永久删除的照片?

“嗨,我永久删除了电脑上的很多照片。回收站被清空,照片会永久丢失吗?有什么方法可以恢复这些已删除的照片吗? 我们所有人都经历过同样的事情:我们的硬盘上存储了文件、视频或照片,但不小心删除了它。这个…

短信API接口相比邮件API接口的优缺点对比?

API接口怎么做开发集成?如何保障API接口的安全性? 短信API接口和邮件API接口作为两种主要的通信方式,各有其独特的优缺点。接下来,Aok将对这两种接口进行详细的对比分析,并特别提及AokSend邮件API的优点。 短信API接…

最大堆,最小堆,优先队列,堆排序 LC例题-找第K大元素

LC215 数组中的第K个最大元素 class Solution {static Comparator<Integer> cmp new Comparator<Integer>(){Overridepublic int compare(Integer i1, Integer i2){return i1 - i2;//升序排列// return i2 - i1&#xff1b;//降序}}; public static int findKthL…

湖南(品牌定位)源点咨询 企业如何选择品牌定位差异化调研

湖南源点认为&#xff1a;精准且占据消费者认知&#xff0c;探寻与消费者共鸣的常态化品牌定位调研是企业品牌长远健康发展的基石。 品牌定位里要强调品牌的差异。英文是point of difference. 这个差异点就是强调品牌能带来的利益&#xff08;benefit&#xff09;。 这个“利…