java 利用POI读取execel文件时出现 Unable to read entire header; 0 bytes read; expected 512 bytes 的解决方法

从仿真到器件:铌酸锂电光调制器Comsol建模避坑指南 本文详细介绍了铌酸锂电光调制器在Comsol中的建模全流程,涵盖晶体切向选择、材料参数配置、多物理场耦合等关键技术。通过实战案例和调试技巧,帮助工程师避开常见建模陷阱,提升仿真精度与效率,特别适用于高速光通信系统的器件设计与优化。 阅读详情

 公司原来在导入execel文件时,是一个一个导入的;也即,每一个导入文件都要有对应的java代码实现,所以在读取execel文件的时候没出现什么问题,这两天,准备把以前的做法废掉,统一封装一下,以达到只要根据配置文件就能解析所有的execel文件并将结果返回。

     在实现过程中,刚开始时用demo写的,所以execel文件是全路径的(类似于c://test/XXX.xls),解析的时候需要两次打开同一个execel文件,不过都不会出现问题。后来移植到到项目中去的时候,由于是直接通过网页导入的,只能获取其InputStream流,不能获取其绝对路径。由于需要两次用到inputStream,故就出现了Unable to read entire header; 0 bytes read; expected 512 bytes 这样的问题。

     网上找了好久,很多解决方案都不行,后来才想到InputStrem流只能用一次,第二次就失效了,才导致了以上的问题。解决的方法有两种,(参考http://simpleframework.net/bbs/835/27640.html),我选择首先将这个inputstrem流用字节数字存起来,要用的时候再用ByteArrayInputStream封装(参考http://hiok.blog.sohu.com/65555266.html),具体如下:


        //一开始,就把流对象用字节数字保存起来
        byte[] buf = org.apache.commons.io.IOUtils.toByteArray(execelIS)//execelIS为InputStream流
         /////////////////////////
         //在需要用到InputStream的地方再封装成InputStream
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(buf);
        Workbook wb = new HSSFWorkbook(byteArrayInputStream);//byteArrayInputStream 继承了InputStream,故这样用并没有问题
        ///其它要用到的地方也是同样的原理
        //主:如果只需要用到一次inputstream流,就不用这样啦,直接用就OK


RK3588部署实战:利用RGA硬件加速单元优化YOLOv5的图像预处理与推理性能 摘要:本文探讨了在Rockchip芯片上使用RGA(Rockchip图形加速器)实现YOLOv5图像预处理的过程。通过对比RGA和OpenCV两种方式处理图像的速度,发现RGA加速效果不明显且不稳定(13-17fps),分析原因可能是图片尺寸过小和内存操作消耗时间。文章详细介绍了RGA版本的resize和letterbox实现代码,包括图像缩放、边缘填充等功能,并提供了预处理流程和性能监控方法。结果表明在当前场景下RGA尚未达到预期加速效果,可能与官方代码下架和实现细节有关。 阅读详情

相关推荐

一文入门BMS(电池管理系统)

本文章是基于曾师兄的文稿《具有组网扩展功能的新能源汽车电池管理系统》而写的文章。该文章主要是对BMS(Battery Management System,电池管理系统)做一些简要的介绍,借此助各位也助我入门BMS。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。

weixin_45817947的博客 2万+

webflux excel文件上传:java.io.IOException: Unable to read entire header; 0 bytes read; expected 512 byte

webflux excel文件上传报错:java.io.IOException: Unable to read entire header; 275 bytes read; expected 512 bytes 报错代码: @PostMapping(value = "read/excel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ResponseEntity<?> uploadFile( @Api.

闪客 1674

Google账号找回通用方法(尤其是知道账号密码仍无法登录和找回的)

Google账号找回通用方法【尤其是知道账号密码仍无法登录和找回的】普通找回注意:适用于常用谷歌账户的设备和网络情况下无法使用手机或辅助邮箱验证码进行密码找回特殊找回方法注意;适用于1.新的设备以及网络环境(包括由于非正常原因导致设备系统以及应用信息变更)2.没有开启辅助验证(手机/邮箱)3.知道账号密码但无法登录或找回。通过申诉进行找回 普通找回 注意:适用于 常用谷歌账户的设备和网络情况下 无法使用手机或辅助邮箱验证码进行密码找回 通过恢复页面进行恢复 https://accounts.google

极客代码-极致生活 23万+

Unable to read entire header,0 bytes read;expected 512 bytes

unable to read entire header;0 bytes read;expected 512 bytes

java_LittleBird的博客 1916

《大明王朝1566》中,朝廷财政危机无法解决的根源分析

财政困局中的财富最终流向三重黑洞:​皇室挥霍​(如嘉靖炼丹修殿)、特权阶层贪腐​(严党年入百万两盐税)、制度性损耗​(宗室供养、低效官僚)。更深层的“钱”其实是被禁锢在道德化治理的牢笼中——当国家用“黄河长江皆可为用”的权术思维替代制度性改革时,财政危机便成为帝制王朝无法逃脱的宿命。

为了小家奋斗 1976

USB2.0信号完整性测试之眼图

名称线缆颜色引脚描述红色绿色白色GND黑色。

qq_53766840的博客 3287

poi问题解决java.io.IOException: Unable to read entire header; 0 bytes read; expected 512 bytes

FileInputStream文件与FileOutputStream分开使用即使用两个文件。FileOutputStream文件覆盖所致,问题原因为xls文件大小为0k,

2301_78754943的博客 970

达梦7实时主备集群

达梦7实时主备配置实时主备数据环境说明配置主库配置 dm.ini配置dmmal.ini配置dmarch.ini配置dmwatcher.ini配置dmwatcher.ini以mount方式启动主库设置OGUID修改数据库为primary模式配置备库 在服务器部署过程中,通常搭建有数据库主备集群,用于防备数据库服务器产生问题影响数据正常,在此,我们分享一下在虚拟机环境中模拟搭建实时主备的数据守护模式。 在搭建环境之前,需用户确认主备DM7的数据库已安装完成,且版本一致,同时还应注意各实例所在主机的操作系统位数、

g360382的博客 1022

文件读写

最近遇到这个问题:Unable to read entire header; 0 bytes read; expected 512 我是先创建文件,然后再读取文件,所以这里会出现问题; 读取文件的时候,它会首先检测512byte,但是文件还没有创建好,那么就会报这个错; 在读文件的时候进行判定,如果存在则可以读写,如果不存在可以让它延时一会儿;

huhusky 557

【CT/电镜 重建教程 1.1】层析成像的精确实空间迭代重建算法(RESIRE)

在此,我们报告了RESIRE算法的发展用于准确的断层重建。与实空间迭代算法相比,RESIRE使用傅里叶切片定理或Radon变换作为正向投影,使用线性变换作为反向投影,两者都具有高精度。与EST和GENFIRE相比,RESIRE是一种实空间迭代算法,可以在并行计算中实现快速运行时间。

2401_87064292的博客 1062

【CloudCompare教程】017:点云快速全局配准

点云数据的配准分为基于特征(特征点、特征线)的拼接和无特征拼接。特征点匹配的方法和全局ICP的方法。特征点的方法通过全局特征匹配达到全局配准,全局ICP的方法通过对变量空间进行搜索的方法达到全局最优解。

智慧空间实验室 3930

java 读取execel文件时出现 Unable to read entire header; ……的解决方法

java 读取execel文件时出现 Unable to read entire header; ……     我在做java操作excel项目时(用的是POI),遇到一个问题: Unable to read entire header; 0 bytes read; expected 512 bytes.               上网查了很多资料,都是关于将inputstrem流用

4059

机器人在果园内行巡检仿真(2D雷达、realsense相机)

DiffBot是一种具有两个轮子的自主差动驱动机器人。它的主要处理单元是一个运行Ubuntu Mate 20.04和ROS 1 (ROS Noetic)中间件的Raspberry pi4b。该存储库包含ROS驱动包、真实机器人的ROS控制硬件接口和模拟DiffBot的配置。修改配置文件orchard_world.launch。

如果想成为中心,那么就到中心去吧。 1312

java.io.IOException: Unable to read entire header; 0 bytes read; expected 32 bytes

读取同一个excel的时候(多个sheet),创建了多个WorkBook会出现这种问题。引起这种错误的原因估计多个读写流同时去读取同一个内存的原因照成的,解决办法是 使用单例模式。 public static ImportPicture getImportPicture(ByteArrayInputStream in,Boolean isNew) throws IOException{

xufan007的专栏 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POI 读取Excel文件 (常遇问题)和(常用方法)

一、常遇问题 使用new HSSFWorkbook(NEW FileInputStream(excelFile))来读取Workbook,对Excel2003以前(包括2003)的版本没有问题,但读取Excel2007时发生如下异常: org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied DATA appear...

hexiaoli666的博客 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Unable to read entire header; 80 bytes read; expected 512 bytes

做了一个上传excel表格的功能,老是报这个错误,这个错误找了大半天了,最后的解决方式也很简单 “expected 512 bytes将读取您的前512个字节,Inputstream并在没有足够的字节读取时抛出异常。认为您的文件不够大,无法被POI阅读。” 可以修改一下excel格式或者把xls改成xlsx都行, 亲测有效!!! ...

weixin_44124432的博客 2808

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

POI 操作 wrod 和 excel 文档

java 利用POI 读写 word excel ,还算方便 1. 遇到 java.io.IOException: Unable to read entire header; 0 bytes read; expected 512 bytes 主要是打开多个文档读写,就会出问题。 打开文档需要用单例模式 在一个线程里开了一个 HSSFWorkbok(excel workbook obj...

david95的博客 401

Poi Unable to read entire header; 0 bytes read; expected 512 bytes

Java 使用POI 读取 excel文件,错误: Unable to read entire header; 0 bytes read; expected 512 bytes 原因可能: FileInputStream 使用了两次,第二次就会报这个错  

zhlfz的博客 1987

文件传输问题

java. io. IOException: Unable to read entire header; 160 bytes read; expected 512 bytes 问题之一 打开你的文件看看是否报错,如果报错,可能是文件的问题。

YG2838833788的博客 515

异常java.lang.IndexOutOfBoundsException

java.lang.IndexOutOfBoundsException at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(Unknown Source) at mysql_Blob数据类型.BlobTest.readBlob(BlobTest.java:41) at

Thanours的博客 6276

Unable to read entire header; bytes read; expected bytes

今天出现了上面的错误,他的意思大概是读取word的文件时读取不到后面大小的word文件,也就是文件大小不够,后来我去打开下文件,文件大小应该够啊,怎么会说不够呢,后来断点一看,流竟然是-1,也就是没有读到流,怎么回事,后来直接用项目中的地址打开下word文档,竟然打不开后来一看电脑上别的word文档,后缀名写错了,修改后缀名就可以了,真是粗心了,以后出现这样的错误,可以先断点看一下独到了多少流,是

熊浪的博客 4265

Java上传Excel表格:java.io.IOException: Unable to read entire header;42bytes read; expected 512 bytes

异常信息: 代码部分: 解决办法: 将上面代码改成如下 修改Excel格式,将.xls改成.xlsx

weixin_44863673的博客 1104

Unable to read entire header; 336 bytes read; expected 512 bytes

产生这个的原因是我这里重复调用了InputStream, POIFSFileSystem fs = new POIFSFileSystem(multipartFile.getInputStream()); InputStreamReader read = new InputStreamReader( multipartFile.getInputStream(),encoding);...

iteye_20240的博客 1943

java.io.IOException: Unable to read entire header; 275 bytes read; expected 512 bytes

今天做了一个上传excel表格的功能,老是报这个错误,这个错误找了老半天了,最后的解决方式也很简单 “readFirst512()将读取您的前512个字节,Inputstream并在没有足够的字节读取时抛出异常。我认为您的文件不够大,无法被POI阅读。” 可以修改一下excel格式或者把xls改成xlsx都行, ...

xubai1314521的博客 4365
上一篇: java 利用POI 读取Execel数据的真实行数
下一篇: freemarker 数字格式化处理
jackshen310
博客等级 码龄15年 1粉丝 6原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值