Java 日看一类(39)之IO包中的ObjectStreamException和OptionalDataException异常类

SolidWorks与Python二次开发实战:从宏录制到自动化脚本 本文详细介绍了利用Python对SolidWorks进行二次开发的实战方法。通过宏录制获取操作指令,再将其转换为Python脚本,工程师可以高效实现建模、出图等重复任务的自动化,显著提升设计效率。文章涵盖了环境搭建、代码转换、调试技巧及完整实战案例,为工程师提供了从入门到精通的完整路径。 阅读详情

ObjectStreamException异常类继承自IOException



该类的类头注释如下:

* Superclass of all exceptions specific to Object Stream classes.

大意如下:

描述所有对象流类异常的顶级类



该类含有如下的成员变量:

序列化ID

private static final long serialVersionUID = 7260898174833392607L;


该类含有如下的成员方法:

构造方法(传入出错的类名)

protected ObjectStreamException(String classname) {
    super(classname);
}

构造方法(默认)

protected ObjectStreamException() {
    super();
}



该类作为对象流异常的顶级类,一般情况下被使用到的是其子类,如下面要提到的OptionalDataException



OptionalDataException继承自ObjectStreamException


该类的类头注释如下:

/**
 * Exception indicating the failure of an object read operation due to
 * unread primitive data, or the end of data belonging to a serialized
 * object in the stream.  This exception may be thrown in two cases:
 *
 * <ul>
 *   <li>An attempt was made to read an object when the next element in the
 *       stream is primitive data.  In this case, the OptionalDataException's
 *       length field is set to the number of bytes of primitive data
 *       immediately readable from the stream, and the eof field is set to
 *       false.
 *
 *   <li>An attempt was made to read past the end of data consumable by a
 *       class-defined readObject or readExternal method.  In this case, the
 *       OptionalDataException's eof field is set to true, and the length field
 *       is set to 0.
 * </ul>
 *
 * @author  unascribed
 * @since   JDK1.1
 */

大意如下:

该类表示读取对象操作失败,原因是无法读取流中对象的基本数据或者是序列化对象的末尾数据,该异常会因两种原因被抛出:

企图读取的对象下一部分是基础数据,在这种情况下,OptionalDataException的长度字段将会被设置为立刻可从流中读出的基础数据字节数,文件结束字段为false

企图使用类声明的readObject或者readExternal方法来读取数据末尾后的部分。在这种情况下,文件结束字段会被设置为true,并且长度字段设置为0



该类含有如下的成员变量:

序列化ID

private static final long serialVersionUID = -8011121865681257820L;

可立刻被读取出的byte长度

public int length;

文件结束标志符

public boolean eof;



该类含有如下的成员方法:

构造函数(第一种情况

OptionalDataException(int len) {
    eof = false;
    length = len;
}

构造函数(第二种情况

OptionalDataException(boolean end) {
    length = 0;
    eof = end;
}



该类的使用方式在注释中已经提到,在这里不再赘述(该类的注释写的有点模糊,说是数据末尾,又说是数据末尾后的非法空间,等到看到了该类的具体抛出位置再来补充和更新)

Codex 100个真实案例 - 用AI批量清洗Excel脏数据(10万行3分钟搞定) 每个做数据分析的人都被"脏数据"折磨过——空值、重复行、日期格式五花八门、手机号多一位少一位……手动清洗几千行就已经让人崩溃,更别提10万行了。本文将展示如何用 Codex 生成一套完整的 Python pandas 数据清洗工具,从读取Excel/CSV、识别脏数据、自动清洗、生成清洗报告,到可视化对比清洗前后的数据质量,全程自然语言驱动,10万行数据3分钟搞定! 阅读详情

相关推荐

从公式到实践:用SPSS解锁香农多样性指数的生态洞察

本文详细介绍了如何利用SPSS软件计算和应用香农多样性指数进行生态研究。从基础公式解析到SPSS实战操作,再到生态决策支持,全面展示了该指数在物种丰富度和均匀度量化中的价值。文章特别强调了SPSS操作中的关键技巧和常见误区,为生态研究者提供了一套完整的分析解决方案。

weixin_30832143的博客 466

Java 8 Optional 详细用法

一、简介 Optional 是一个对象容器,具有以下两个特点:     提示用户要注意该对象有可能为null     简化if else代码 二、使用介绍 1. 创建:     Optional.empty(): 创建一个空的 Optional 实例     Optional.of(T t):创建一个 Optional 实例,当 t为null时抛出异常           Optio...

旅行者 4万+

运算放大器电路仿真实践:从零实现完整示例

通过一个完整的运算放大器电路仿真示例,深入掌握电路仿真的关键步骤与技巧,帮助电子爱好者和工程师快速上手实际项目设计。

weixin_34725745的博客 1320

java.io.ObjectStreamException异常的正确解决方法,亲测有效,嘿嘿嘿

java.io.ObjectStreamException是Java I/O流处理对象序列化和反序列化时可能会抛出的一种异常。这个异常是ObjectStreamException类的基类,表示在序列化或反序列化过程中发生了错误。它有几个子类,如InvalidClassException、NotSerializableException、BadClassFileException等,每个子类都代表了一种特定的错误情况。 问题分析 当遇到java.io.ObjectStreamException或其子类异常时

PythonAigc的博客 1749

LVGL在STM32H743IIT6上的性能优化技巧:如何提升图形界面刷新速度

本文详细介绍了在STM32H743IIT6高性能MCU上优化LVGL图形界面刷新速度的实战技巧。通过利用芯片的DMA2D硬件加速模块替代低效的软件画点,将绘制缓冲区放入SDRAM并启用双缓冲机制,以及合理配置CPU缓存与MPU,有效解决了界面卡顿问题。文章还涵盖了LVGL引擎调优、内存架构优化等关键步骤,帮助开发者充分发挥STM32H743的硬件潜力,实现流畅的图形界面体验。

vscode6remote的博客 308

WSL2+Docker+Ollama:解锁Windows本地GPU加速运行DeepSeek-R1模型

本文详细介绍了在Windows系统上,通过WSL2、Docker和Ollama的组合方案,实现本地GPU加速运行DeepSeek-R1模型的全过程。该方案解决了Windows环境下Ollama默认无法调用NVIDIA显卡的痛点,通过配置Docker的GPU支持,强制将计算任务分配给GPU,从而显著提升文本生成速度与效率,为开发者提供了一个便捷的本地AI测试环境。

weixin_28452161的博客 358

2021-10-22

eclipse报错:无法解析类型 java.lang.Object。从必需的 .class 文件间接引用了它 如图,刚刚新建的Java项目报错了 已知,已经通过 窗口»首选项»Java»安装的JRE 在Eclipse中添加了下载的jdk1.8.0_152,但是还是报错 点击配置构建路径,找到Java构建路径,选择库选项,删除JRE系统库(此时有个红叉) 重新添加库,找到JRE系统库,选择工作区默认JRE,确定,应用并关闭 最后能看到比之前多了一个东西: 我的问题解决了,如果你还是没解决可以看看这个链接

qq_42571681的博客 180

【图文步骤】EC-Engineer部分操作详细步骤

EC-Engineer部分功能详细使用手册

weixin_42212468的博客 6175

Bug之java.io.OptionalDataException

产生背景: 在线上的生产环境中,登录时有一个将用户的访问权限写入redis缓存的逻辑,以便后面访问接口时候,快速验证用户是否具有权限。写入的时候,没有报错提示。但是取出来的时候,偶发性的会报Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is java.io.OptionalDataExcept

cauchy6317的博客 4521

基于 ESP32 的智能环境监测与远程报警系统

本系统基于 ESP32 实现了环境数据的采集、远程传输、报警通知功能,硬件成本低、接线简单、代码可直接运行。用户可根据实际需求调整传感器类型(如替换为 PM2.5 传感器、土壤湿度传感器)和功能扩展,适合嵌入式 IoT 入门学习和实际场景应用。通过多轮迭代(如优化低功耗、增加 APP 控制),可进一步提升系统的实用性和稳定性。

weixin_42300449的博客 1025

C#上位机实战:Modbus RTU串口通信(CRC校验+超时重发完整实现)

在工业自动化上位机开发中,Modbus RTU是串口通信的事实标准协议,SerialPort是 .NET 平台操作串口的原生类,无需依赖第三方库即可实现基础通信。实际项目中,工控现场存在电磁干扰、串口丢包、设备响应延迟等问题,CRC 数据校验用于保证报文完整性,超时重发机制用于提升通信稳定性。本文从零封装一套可直接落地的 Modbus RTU 通信组件,包含完整的校验算法、超时控制、重发逻辑,并配套 WinForm 演示界面。本文基于 C# 原生SerialPort类,实现了一套生产可用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 392

java.io.OptionalDataException异常问题处理

使用shiro框架,用Cache做缓存,系统平常能正常运行,可突然登陆的时候突然出了这个错误:java.io.OptionalDataException 后来发现在EhCache的本地xml配置文件里 有这样一段配置 从配置里可以看到,该系统的缓存路径是绝对路径(公司的同类产品大概率也是这样配置的) 这样就可能导致保存的缓存之间存在冲突 解决:找到所配置的目录 然后干掉 ...

z19530的博客 4166

倒立摆的PLC控制(模型分析+ SCL源代码)

首先简单介绍下倒立摆模型,下面这幅图是MATLAB网站上的倒立摆模型,下面我们利用牛顿第二运动定律建立摆杆的运动方程。

RXXW_Dor的博客 3336

java bip-39_Java 日看一类(39)之IO包中的ObjectStreamException和OptionalD

ObjectStreamException异常类继承自IOException该类的类头注释如下:* Superclass of all exceptions specific to Object Stream classes.大意如下:描述所有对象流类异常的顶级类该类含有如下的成员变量:序列化IDprivate static final long serialVersionUID = 726089...

weixin_35956312的博客 202

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Java 8】巧用Optional之优雅规避NPE问题

避之不及的 NullPointerException NPE : NullPointerException 空指针异常是最常见的Java异常之一,抛出NPE错误不是用户操作的错误,而是开发人员的错误,应该被避免,那么只能在每个方法中加入非空检查,阅读性和维护性都比较差。 以下是一个常见的嵌套对象:一个用户所拥有的汽车,以及为这个汽车配备的保险。 public class User { ...

翎野君的博客 425

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

(每日持续更新)jdk api之OptionalDataException基础、应用、实战

int length: 表示所需数据的长度。: 返回所需数据的长度。

a89879193的专栏 980

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

关于StreamCorruptedException异常的解决方法之一(Exception in thread “main“ java.io.StreamCorruptedException)

先来看打印的异常信息: Exception in thread “main” java.io.StreamCorruptedException: invalid stream header: D6D0B9FA at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:866) at java.io.ObjectInputStream.(ObjectInputStream.java:358) at test.ObjectStrea

qq_43784314的博客 6249

java io报错_/sysadmin 登入 报错java.io.OptionalDataException

[DEBUG] 11:33:36.745 org.apache.shiro.web.servlet.SimpleCookie.readValue(SimpleCookie.java:389) - Found 'sid' cookie value [59fr7fiah8ha1pe7q9n7q1qv04][WARN ] 11:33:36.748 org.eclipse.jetty.server.Htt...

weixin_39956350的博客 634

解决 java.io.StreamCorruptedException: invalid type code: AC 异常

通过自定义的类 AppendOutputStream 继承自 ObjectOutputStream, 并且重写了父类的 writeStreamHeader() 方法以保证文件中只存在一个 StreamHeader,从而 java.io.StreamCorruptedException: invalid type code: AC 异常抛出问题得到解决。

春天熊的技术博客 8046

关于 java.io.OptionalDataException

Java的对象传输是在一个keepalive连接上传输的,就是说建立一个网络连接后可以传输很多很多的对象实例。 譬如:A跟B通讯,A端write对象a,write对象b,write对象c;B端就要read对象a,read对象b,read对象c。 但是B端面对的是源源不断的数据,怎么才能区分出a和b的分界点呢,这个就是应用协议要解决的问题了。通用的解决方法是在write a前用一个商定的协议头,在

一只萌萌的博客 1万+

StreamCorruptedException的基本原理

刚开始学习使用ObjectInputStream的时候经常会遇见StreamCorruptedException异常,chu

根是地下的枝 8458

java在登录界面时有验证吗_框架偶发性的报错:java.io.OptionalDataException,登录页面刷新验证码会出现...

org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: java.io.OptionalDataExceptionat org.apache.shiro.cache.ehcache.EhCache.put(EhCache.java:104)at org.apache.shiro.session.mgt.eis.Ca...

weixin_32821695的博客 963

java.io.optionalDataException

在使用sockt通信,当客户端接收服务器数据,程序运行到 msg= (TransportObject) ois.readObject(); 报错:java.io.optionalDataException 解决:客户端和服务器端,传输对象的包名不相同。 转载于:https://www.cnblogs.com/wangguangjian/p/8823155.html...

weixin_30364325的博客 2183

已解决java.io.ObjectStreamException异常的正确解决方法,亲测有效!!!

已解决java.io.ObjectStreamException异常的正确解决方法,亲测有效!!!

小明的Java问道之路 1万+

java newio,运行方法中是否存在java.io.OptionalDataException?

Why I receive java.io.OptionalDataException in the run method?ObjectInputStream reads items & users couple times, then it crashes with OptionalDataException. I think it relates EOFException.It pri...

weixin_36448205的博客 302
上一篇: Java 日看一类(38)之IO包中的ObjectStreamConstant类
下一篇: Java自制简易Http服务器(2)
wyf95278
博客等级 码龄10年 38粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值