【Java基础 下】 027 -- 异常、File、综合案例

目录
一、异常
1、异常的分类
①、Error
②、Exception
③、小结
2、编译时异常和运行时异常
①、编译时异常
②、运行时异常
③、为什么异常要分成编译时异常和运行时异常?
④、小结(运行时异常和编译时异常的区别)
3、异常的作用
①、查看bug的关键参考信息
②、作为方法内部的一种特殊返回值
4、JVM默认的处理方式
5、try…catch(捕获异常)
①、示例代码
6、灵魂四问
①、灵魂一问:如果try中没有遇到问题,怎么执行?
②、灵魂二问:如果try中可能会遇到多个问题,怎么执行?
③、灵魂三问:如果try中遇到的问题没有被捕获,怎么执行?
④、灵魂四问:如果try中遇到了问题,那么try下面的其它代码还会执行吗?
⑤、小结
7、异常中的常见方法
①、示例代码
②、System.err
8、抛出异常
①、示例代码
②、小结
9、综合练习
10、自定义异常
二、File
1、File的概述
①、路径
②、File常见的构造方法
③、小结
2、File的常见成员方法
①、创建、删除
②、获取并遍历
通过listFiles()实现文件过滤器的效果:
listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下的所有内容
③、判断、获取
三、综合练习
1、File类相关的API练习题
①、在aaa文件夹中创建一个a.txt文件
②、找某一个文件夹中,是否有以avi结尾的电影(不考虑子文件夹)
③、找某一个文件夹中,是否有以avi结尾的电影(考虑子文件夹)
④、删除一个多级文件夹
⑤、统计一个文件夹中每个文件的个数并打印
⑥、统计一个文件夹的总大小
一、异常


1、异常的分类


①、Error

②、Exception

③、小结

2、编译时异常和运行时异常

①、编译时异常

②、运行时异常

③、为什么异常要分成编译时异常和运行时异常?
在编译阶段,Java不会运行代码,只会检查语法是否错误,或者做一些性能的优化

编译时异常更多的是提醒程序员检查本地信息

而运行时异常的核心在于提醒,而是代码出错而导致程序出现的问题

④、小结(运行时异常和编译时异常的区别)

3、异常的作用

示例代码:
①、查看bug的关键参考信息


②、作为方法内部的一种特殊返回值



4、JVM默认的处理方式

示例代码:

Console:

5、try…catch(捕获异常)

①、示例代码

Console:

6、灵魂四问

①、灵魂一问:如果try中没有遇到问题,怎么执行?
顺序执行,没有问题,自然就不会触发捕获异常
②、灵魂二问:如果try中可能会遇到多个问题,怎么执行?
(由于可以向上转型的问题,父类可以接收所有子类的消息,那么如果父类在最上面,那么下面的子类异常就接收不到消息了)



③、灵魂三问:如果try中遇到的问题没有被捕获,怎么执行?

④、灵魂四问:如果try中遇到了问题,那么try下面的其它代码还会执行吗?

⑤、小结

7、异常中的常见方法

①、示例代码
注意事项:



②、System.err

8、抛出异常

①、示例代码



②、小结

9、综合练习

示例代码:
GirlFriend.java:

Test.java:

10、自定义异常

NameFormatException.java:

AgeOutOfBoundsException.java:

测试类:



二、File

1、File的概述

①、路径

②、File常见的构造方法

示例代码:
Ⅰ、根据字符串表示的路径,变成File对象

Ⅱ、根据父路径名字符串和子路径名字符串创建文件对象

在Java中 \ 表示转义字符,\\才能正确表示路径分隔符


Ⅲ、根据父路径对应的文件对象和子路径名字符串创建文件对象

③、小结

变成File对象的目的,是为了使用其中的方法
2、File的常见成员方法
①、创建、删除


createNewFile():创建一个新的空的文件,创建成功返回True


mkdir():make Directory:文件夹(目录)

mkdirs 创建多级文件夹

delete() 删除文件、空文件夹

②、获取并遍历

listFIles() 获取当前路径下所有内容(重点掌握,其它了解)


listFiles()方法的细节:

listRoots() 获取系统中所有的盘符


list() 获取当前该路径下所有内容(仅仅能获取名字)


list(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容


文件名过滤器:只获取后缀是.txt的文件

通过listFiles()实现文件过滤器的效果:


listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下的所有内容


③、判断、获取

示例代码:
isDirectory()\isFile()\exists():



length()\getAbsolutePath()\getPath()\getName()\lastModified():






课堂练习:


三、综合练习
1、File类相关的API练习题
①、在aaa文件夹中创建一个a.txt文件

示例代码:

②、找某一个文件夹中,是否有以avi结尾的电影(不考虑子文件夹)

示例代码:

③、找某一个文件夹中,是否有以avi结尾的电影(考虑子文件夹)

示例代码:



④、删除一个多级文件夹

示例代码:


删除过程:

⑤、统计一个文件夹中每个文件的个数并打印

示例代码:




⑥、统计一个文件夹的总大小


代码过程:

相关文章:
【Java基础 下】 027 -- 异常、File、综合案例
目录 一、异常 1、异常的分类 ①、Error ②、Exception ③、小结 2、编译时异常和运行时异常 ①、编译时异常 ②、运行时异常 ③、为什么异常要分成编译时异常和运行时异常? ④、小结(运行时异常和编译时异常的区别) 3、异常的作用 ①、查看b…...
教师管理系统的设计与实现
技术:Java、JSP等摘要:1.1 计算机管理教师的意义近年来,随着经济的发展,教育正面向着大型化、规模化的方向发展,教师数量急剧增加,有关教师的各种信息量也成倍增长。在这种情况下用计算机可使人们从繁重的劳…...
【Java】线程使用方式
(1)继承 Tread 类 继承Thread类,创建一个新的线程类重写run()方法,将需要并发执行的业务代码编写在run()方法中 //继承Thread来创建一个线程类 class MyThread extends Thread{Overridepublic void run(){System.out.println("hello Thread"…...
零基础想转行学习Python,该如何学习,有学习路线分享吗?(2023年给初学者的建议)
Python属于一种面向对象、解释性的高级语言,它如今在众多领域都被应用,包括操作系统管理、Web开发、服务器运维的自动化脚本、科学计算、桌面软件、服务器软件(网络软件)、游戏等方面,且Python在今后将被大规模地应用到大数据和人工智能方面。…...
IDEA Maven install Failed to execute goal org.apache.maven.plugins异常处理
目录一、异常错误二、原因三、解决方法修改pom.xml资源配置文件一、异常错误 由于服务器编译拦截了静态资源,导致出现异常,需要重新打包编译 打开IDEA带的Maven管理,双击clean清除由项目编译创建的target 再双击install安装jar包到本地仓库…...
TensorFlow-Keras - FM、WideAndDeep、DeepFM、DeepFwFM、DeepFmFM 理论与实战
目录 一.引言 二.浅层模型概述 1.LR 2.FM 3.FMM 4.FwFM 5.FmFM 三.常用推荐算法实现 Pre.数据准备 1.FM 2.WideAndDeep 3.DeepFM 4.DeepFwFM 5.DeepFmFM 四.总结 1.函数测试 2.函数效果与复杂度对比[来自FmFM论文] 3.More 一.引言 推荐系统中常见的 CTR 模型…...
Java浅析电信数据采集
技术:Java等摘要:电信运营系统中,电信计费系统是主要的支撑系统,占有重要地位。对于电信计费系统是电信运营商的核心竞争力之一这一观点愈来愈被业界认同。电信计费系统中的数据蕴含着企业经营态势、客户群分布特征及消费习惯、各…...
那些开发中需要遵守的产研开发规范
入职新公司第三天,没干啥其他活,基本在阅读产研开发规范。公司在技术方面沿用的是阿里的一套技术,所以入职之前需要先阅读《阿里巴巴开发规范》。今天整理一些平时需要关注的阿里规约和数据库开发规范,方便今后在开发过程中查阅。…...
一文深入分析-内核并发消杀器(KCSAN)
一、KCSAN介绍 KCSAN(Kernel Concurrency Sanitizer)是一种动态竞态检测器,它依赖于编译时插装,并使用基于观察点的采样方法来检测竞态,其主要目的是检测数据竞争。 KCSAN是一种检测LKMM(Linux内核内存一致性模型)定义的数据竞争(data race…...
Java学习-IO流-字符缓冲流
Java学习-IO流-字符缓冲流 字符缓冲流↙ ↘ BufferedReader BufferedWtrier 字符缓冲输入流 字符缓冲输出流底层自带长度为8192的缓冲区提高性能 public BufferedReader(Reader r):把基本流包装成高级流 public BufferedWtrier(Wtrier w):把…...
Java的一维数组遍历、求最值、冒泡排序
一.数组遍历: Example: import java.util.ArrayList; public class App { public static void main(String[] args) { int[]arr{1,2,3,4,5}; for(int i0;i<arr.length;i){ System.out.println(arr[i]); } } 运行结果:12345 定义了一…...
Free for photo container detection, container damage detect PaaS
集装箱箱号识别API免费,飞瞳引擎集装箱人工智能平台,可通过API二次开发或小程序拍照使用,可二次开发应用码头港区海关仓库口岸铁路场站船公司堆场,实现云端集装箱信息识别/集装箱箱况残损检测/好坏箱检验,高检测率/高实…...
【golang】【源代码】reflect.DeepEqual(x,y)函数
reflect.DeepEqual(x, y)函数 功能是比较x和y是否一致,x和y不仅限于基础类型,也可以是像array、 slice、 map、 ptr、struct、interface类型,在代码中经常能见到。 一起看下是怎么实现的吧~ func DeepEqual(x, y interface{}) bool {if x …...
Python实现定时执行脚本(4)
前言 本文是该专栏的第16篇,后面会持续分享python的各种干货知识,值得关注。 在项目开发中,难免会需要用到定时任务。比如说,在某个时间段,甚至是达到某时某分某秒自动运行你部署好的功能脚本。而在本专栏的前面,笔者有详细介绍过3种使用python执行定时脚本的方法。 1.…...
量子力学(4) 全同粒子
如果势能与时间无关,那么Ψψe−iEt/ℏ\Psi\psi e^{-iEt/\hbar}Ψψe−iEt/ℏ,EEE是系统的总能量。 全同粒子分为玻色子和费米子。所有电子是全同的费米子。所有质子是全同的费米子。全同就是说不可能区分出其中的一个,比如说你摇了五个骰子…...
13、Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
简介 主页:https://github. com/microsoft/Swin-Transformer. Swin Transformer 是 2021 ICCV最佳论文,屠榜了各大CV任务,性能优于DeiT、ViT和EfficientNet等主干网络,已经替代经典的CNN架构,成为了计算机视觉领域通用…...
C++基础入门丨8. 结构体——还需要知道这些
Author:AXYZdong 硕士在读 工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! CSDNAXYZdong,CSDN首发,AXYZdong原创 唯…...
算法第十六期——动态规划(DP)之线性DP
【概述】 线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题、区间DP等有固定的模板。 线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式或等式,目…...
智慧新零售网络解决方案,助力新零售企业数智化转型
随着数字化时代的不断发展,新零售连锁业务模式“线上线下”融合发展,数据、设备在逐渐增加,门店数量也会随着企业规模的扩大而增加,但由于传统网络架构不稳定、延时、容量小影响服务质量(QoS)、分支设备数量…...
Go语言规范中的可赋值
了解可赋值规范的重要性当使用type关键字定义类型的时候,会遇到一些问题,如下:func main(){var i int 2pushInt(i) } type MyInt int //基于int定义MyInt func pushInt(i MyInt){}结果:调用函数pushInt报错 cannot use i (variab…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
