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

news/2024/3/29 17:28:39/文章来源:https://blog.csdn.net/qq_41071754/article/details/129208716

目录

一、异常

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结尾的电影(考虑子文件夹)

示例代码:

④、删除一个多级文件夹

示例代码:

删除过程:

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

示例代码:

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

代码过程:

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

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

相关文章

WindowsPowerShell 停止、启动、暂停和重启服务、卸载服务

PowerShell 停止、启动、暂停和重启服务、卸载服务 PowerShell 停止、启动、暂停和重启服务 官文 powershell卸载服务 官文 目录PowerShell 停止、启动、暂停和重启服务、卸载服务停止、启动、暂停和重启停止服务启动服务暂停服务重启服务卸载移除服务停止、启动、暂停、重启…

4EVERLAND:ERC-721 Token的存储选择

4EVERLAND:一个 Web3 基础设施,可促进项目更轻松、更快速地托管前端、存储数据/NFT/文件,并在 IPFS、Arweave 和 Dfinity 之上访问它们。 NFT , 数字所有权 使用以太坊标准的 NFT 创新ERC-721解决了互联网内容的主要问题之一:所…

想成为一名专业黑客,但不知道从哪里学起?我来教你。

成为一名黑客需要学什么? 想成为一名专业黑客,但不知道从哪里学起”很多人在后台问过这个问题,今天就为你介绍成为专业黑客必须学习的十个方面的知识,希望能为迷惘中的你指明方向。 想要成为网络hacker黑客?先来学习…

测试员拿到新项目怎么着手测试?不要慌,照做准没错

一、目标 结合公司现有的项目情况制定合理规范的测试流程,提高测试效率和产品质量,尽可能减少客户对产品的问题反馈, 核心还是要加强项目组成员之间的工作交流和沟通,保证整个项目的高效率的按质按量的交付。 二、测试流程说明…

【Unity VR开发】结合VRTK4.0:创建物理按钮

语录: 如今我努力奔跑,不过是为了追上那个曾经被寄予厚望的自己 前言: 使用线性关节驱动器和碰撞体从动器可以轻松创建基于物理的按钮,以使交互者能够在物理上按下按钮控件,然后挂钩到驱动器事件中以了解按钮何时被按…

【PyQt5图形界面编程(2)】:创建工程

创建工程 一、创建工程二、开始开发1、运行Qt5Designer,创建QT窗口2、运行pyUIC,转换xx.ui成xx.py3、main.py中引用xx.py中的类4、打包main.py成main.exe来发布5、执行终端报警处理方法三、其他(如果涉及)1、配置环境变量一、创建工程 采用虚拟环境来创建工程 相关的paka…

MyBatis学习笔记(五) —— MyBatis获取参数值的两种方式

5、MyBatis获取参数值的两种方式 MyBatis获取参数值的两种方式:${} 和 #{} ${} 的本质就是字符串拼接, #{} 的本质就是占位符赋值 ${} 使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号&a…

SpringBoot整合阿里云OSS文件上传、下载、查看、删除

SpringBoot整合阿里云OSS文件上传、下载、查看、删除1、开发准备1.1 前置知识1.2 环境参数1.3 你能学到什么2. 使用阿里云OSS2.1 创建Bucket2.2 管理文件2.3 阿里云OSS文档3. 项目初始化3.1 创建SpringBoot项目3.2 Maven依赖3.3 安装lombok插件4. 后端服务编写4.1 阿里云OSS配置…

4面美团软件测试工程师,却忽略了这一点,直接让我前功尽弃

说一下我面试别人时候的思路 反过来理解,就是面试时候应该注意哪些东西;用加粗部分标注了 一般面试分为这么几个部分: 一、自我介绍 这部分一般人喜欢讲很多,其实没必要。大约5分钟内说清楚自己的职业经历,自己的核…

自动驾驶仿真测试介绍

作者 | 楼泽如 上海控安可信软件创新研究院研发工程师 来源 | 鉴源实验室 01 引 言 自动驾驶汽车的兴起,正在重新定义汽车行业。随着自动驾驶技术的发展,自动驾驶汽车将会大大提升交通安全、减少事故发生、减少交通拥堵、提高公路容量等等&#xff0…

Java学习笔记 --- 正则表达式

一、体验正则表达式 package com.javase.regexp;import java.util.regex.Matcher; import java.util.regex.Pattern;/*** 体验正则表达式,给文本处理带来哪些便利*/ public class Regexp_ {public static void main(String[] args) {//假设,编写了爬虫&…

Linux——UDP协议与相关套接字编程

一.概念在网络通信中,传输层中最常用的通信协议有两个:TCP协议与UDP协议。这两种协议虽然都可以用于网络通信,但是通信方式不同决定了应用场景的不同。与TCP协议相比,UDP协议最具特色的不同点有两个:无连接与面向数据报…

码住!新手容易上手的5个tiktok数据分析网站

当下短视频已经称霸了各大内容平台,越来越多的创作者进入到短视频赛道,为了更好地运营自己的内容平台,数据分析是必不可少的。很多人都入局了tiktok,对于商家或者博主红人来说,这是比较新平台,希望能在这个…

python库streamlit学习笔记

什么是streamlit? Streamlit是一个免费的开源框架,用于快速构建和共享漂亮的机器学习和数据科学Web应用程序。它是一个基于Python的库,专为机器学习工程师设计。数据科学家或机器学习工程师不是网络开发人员,他们对花几周时间学习…

Vue-cli脚手架在做些什么(源码角度分析)

什么是Vue脚手架?在学习初期,我们的项目往往需要借助webpack、vite等打包工具配置Vue的开发环境,但是在真实开发中我们不可能每个项目从头来完成所有的webpack配置,这样显得开发的效率会大大的降低;所有的真实开发中&a…

实现基于国密SM3的密钥派生(KDF)功能

实现基于国密SM3的密钥派生(KDF)前言KDF 标准基于SM3的kdf实现前言 密钥派生函数(KDF):密钥派生函数是指从一个共享的秘密比特串中派生密钥数据,在密钥协商过程中,密钥派生函数作用在密钥交换所…

【一看就会】实现仿京东移动端页面滚动条布局

简单粗暴直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge"> <meta name"viewport" content&q…

中移链结合CA证书实现节点准入控制

01背景介绍BSN开放联盟链&#xff08;BSN Open Permissioned Blockchain&#xff0c; 简称OPB&#xff09;包括多条基于公有链框架和联盟链框架搭建的公用链&#xff0c;开发者可以选择适合应用业务需求的开放联盟链部署和运行智能合约和分布式应用&#xff0c;每条开放联盟链各…

码匠 × OpenAI :快速生成 SQL 语句,提升开发效率!

目录 使用 OpenAI 生成 SQL 码匠连接与集成 OpenAI 总结 关于码匠 在码匠中&#xff0c;编写 SQL 语句&#xff0c;并结合码匠一系列开箱即用的组件实现复杂的业务逻辑&#xff0c;是很常见的应用开发场景。然而&#xff0c;不同的数据库在 SQL 增删改查操作语法、类型字段和…

Java知识复习(二)Java集合

1、List、Set和Map的区别 List&#xff1a;存储的顺序是有序的、可重复的Set&#xff1a;存储的顺序是无序的、不可重复的Map&#xff1a;使用键值对存储&#xff0c;Key和Value都是无序的&#xff0c;其中Key不可重复&#xff0c;而Value可重复 2、ArrayList和LinkedList的区…