news 2026/4/17 7:45:40

IO方面学习总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IO方面学习总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、异常
    • 1.异常分类
    • 2.异常流程
    • 3.异常的作用
    • 4.异常的处理方式
      • JVM默认处理方案
    • 5.自己处理
      • 捕获异常
    • 6.抛出异常
  • 二、方法引用
    • 1.要求:
    • 2.方法引用的分类
  • 三、IO流
        • 流的方向
        • 操作文件类型
    • 1.IO流体系
    • 1.字节流
      • InputStream&&OutputStream
        • 1)FileOutStream(操作本地文件的字节输出流)
          • 步骤:
        • try catch异常处理
    • 2.字符流
      • reader
        • FileReader:
      • wirter
        • FileWriter:
        • 细节
    • 3.字符集
  • 三、编码解码代码实现
    • 1.编码方法
    • 2.解码方法
  • 四、高级流
    • 1.缓冲流(buffered)
      • 字节缓冲流
    • 2.转换流
    • 3.序列化流
    • 4.打印流
      • 字节打印流方法
    • 5.解压缩流
  • 总结

前言

事实证明,IO流和多线程并不好学。

一、异常

1.异常分类

Erro代表系统异常错误(严重问题),程序员管不了
Exception叫做异常“程序可能出现的问题”
RuntimeException运行异常(在编译中不会提醒,运行时出现的异常)

其他异常
编译异常:编译阶段就会提醒的异常(必须手动处理,否则代码报错)

2.异常流程

JAVA——>字节文件
编译阶段就要处理的异常
编译阶段:JAVA不会运行代码,只会检查语法是否有错,或做一些性能优化
字节码文件——>运行结果
运行时异常,编译阶段不需要处理。代码运行时出现的异常;一般由于参数传递错误带来的问题

3.异常的作用

作用一
查询bug的关键信息
作用二
异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
eg:throw new RuntimeException();

4.异常的处理方式

JVM默认处理方案

把异常名称、原因、位置等信息输出在控制台
程序停止,不执行下面代码

5.自己处理

捕获异常

格式:
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常的处理代码
}
好处:可以让代码继续往下执行,不会停止

注意项:
try中没有遇到问题,忽热执行
会把try类名的代码执行,不执行cacth类名的代码
try中遇到多个问题,怎么办
要写多个个catch与多个异常对应;
父类异常要写在最下面
ps:jd7以后,一个catch类名可以写多个异常,中间用“|”隔开
try中遇到的问题没被捕获,怎么办
相当于白写,交给JVM处理
try遇到了问题,try下面的其他代码还会执行吗
try中代码出货问题,会直接停止,跳到对应的catch中,若catch中无对应解决方法,默认交给虚拟机处理

6.抛出异常

throws

写在方法定义处,表示声明一个异常,告诉调用者,使用本方法可能会有哪些异常 注意点:编译时异常必须写,运行时异常可以不写

throw

写在方法内,结束方法手动跑出异常对象,交给调用者,方法中下面的代码不再执行了 异常中的常见方法

Trowable

错误输出语句:System.err.println();显示红色字体

二、方法引用

把已有方法拿过来用,当作函数式接口中超级偶像方法的方法体

1.要求:

1.引用处必须是函数式接口;2.被引用的方法必须已经存在3.被引用方法的形参和返回值需要和抽象方法保持一致4.被引用的方法功能要满足当前需求 “::”引用方法的符号具体使用

eg:Arrays.sort(arr,FunctionDemo1::subtracktion);

2.方法引用的分类

引用静态方法
格式:类名::静态方法
eg:Integer::parseInt
引用成员方法
给是:对象::成员方法
1.其他类:其他类对象::方法名
2.本类:this::方法名(不能是静态方法)
3.父类:super::方法名
引用构造方法
格式:new::类名
eg:Student::new

三、IO流

是存储和读取数据的解决方案
file表示系统中文件或者文件夹的路径
IO流用于读写文件中的数据(可以读写文件,或网络中的数据)
创建原则:随用随创建,不用就关闭

流的方向

输入流
输出流

操作文件类型

字节流(所有类型文件)
字符流(纯文本文件)

1.IO流体系

1.字节流

InputStream&&OutputStream

1)FileOutStream(操作本地文件的字节输出流)


如果想续写,可以打开续写开关“true”

步骤:
**创建字节对象**1.参数是字符串表示的路径或者是file对象都可以2.如果路径不存在会创建一个新的文件,但是要保证父级路径是存在的3.如果文件已经存在,则会清空文件**写出数据**write方法的参数是整数,写到本地文件中的参数其实最终对应ASCII码表**释放资源**

每次使用完流后都要释放资源
创建字节流输出对象

try catch异常处理


finally里代码一定会被执行,除非虚拟机停止

2.字符流


字符流=字节流+字符集
特点:
**输入流:**一次读一个字节,遇到中文时,一次读多个字节
**输出流:**底层会把数据按照规定的编码方式进行编码,比纳城字节在写到文件中
使用场景:对纯文本文件进行读写操作

reader

FileReader:

创建字符输入流对象细节:
读取文件不存在直接报错
读取数据细节:
1.按字节进行读取,遇见中文,一次多读个字节,读取后解码,返回一个整数
2.读到文件末尾,返回一个-1
释放资源:
统一关流close。

wirter

FileWriter:

flush:刷新缓冲区

细节

创建字符输出流对象:
参数是字符串表示的对象,或者File对象都可以
如果文件并不存在会创建一个新文件,但要保证父级路径存在
如果文件已经存在则清空文件,不想清空可以打开续写开关
写数据:
如果write方法的参数是整数,但实际上写到本地文件中的是证书在字符集上对应的字符
释放资源
同理

3.字符集

三、编码解码代码实现

1.编码方法

2.解码方法


出现乱码的原因
1.读取数据时未读完整个汉字
2.编码和解码时的方式不统一

四、高级流

1.缓冲流(buffered)

字节缓冲流


特有方法

2.转换流

是字符流与字节流之间的桥梁

字符转换输入流&&字符转换输出流

3.序列化流


细节:使用对象输出流保存到文件会出现异常
解决方案:据要让javabean类实现Serializable接口

4.打印流


字节打印流(printstream)/字符打印流(printwriter)
特点:
1.打印流只操作文件目的地,不操作数据源;
2.特有的写出方法可以实现,数据原样写出
3.特有的写出方法,可以实现自动刷新,换行

字节打印流方法


构造

成员

5.解压缩流

总结

这周唯一的期望是可以平安通过考核。
下周计划:进入考试准备时间,总之重心会放到其他地方去了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 7:45:37

Kronos金融预测模型三版本深度评测:从3.2M到86M参数的性能跃迁

Kronos金融预测模型三版本深度评测:从3.2M到86M参数的性能跃迁 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 在量化投资领域,模型…

作者头像 李华
网站建设 2026/4/17 12:39:39

清华virtuoso简明教程PDF资源完整指南

探索virtuoso软件的奥秘,从这里开始!《清华virtuoso简明教程》PDF文档为您呈现,助您轻松掌握软件的核心操作与技巧。无论您是初学者还是进阶用户,这份详实而清晰的教程都将成为您学习道路上的得力助手。 【免费下载链接】清华virt…

作者头像 李华
网站建设 2026/4/17 7:45:44

Visual Basic 鼠标事件

除了常用的Click和DblClick事件之外,有些程序还需要对鼠标指针的位置和状态变化做出响应,因此需要使用鼠标事件MouseUp,MouseDown和MouseMove。当鼠标指针位于窗体上方时,窗体将识别鼠标事件。当鼠标指针在控件上方时,…

作者头像 李华
网站建设 2026/4/17 10:11:02

C 语言实战:手把手实现学生信息管理系统

C 语言实战:手把手实现学生信息管理系统 作为 C 语言初学者,第一次独立完成一个完整的学生信息管理系统,是对指针、链表、文件操作等核心知识点的一次绝佳综合试炼。本文会拆解这个系统的核心代码模块,剖析每个模块用到的关键知识…

作者头像 李华
网站建设 2026/4/17 7:45:45

如果一个pod断连了,怎么去排查

核心是按 “Pod 状态→网络连通→服务配置→依赖组件” 的顺序逐层定位,高效锁定根因:1. 先查 Pod 自身状态:确认是否存活 / 正常运行这是最基础一步,先判断 Pod 是否本身就没跑起来。执行命令:kubectl describe pod &…

作者头像 李华