risc-v中文社区

 找回密码
 立即注册
查看: 932|回复: 1

[经验] java POI写xls文件时诡异的现象

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2022-5-11 11:01:33 | 显示全部楼层 |阅读模式
POI操作数据之后用file作参数写入xls文件时,发现在IDEA中用DEBUG方式程序执行正常,但生成jar文件之后双击启动执行则失败,但用command命令行方式启动程序又执行成功,非常诡异,代码如下:
  1. file = new File("xxx.xls");
  2. //POI的相关操作
  3. workbook.write(file);
  4. workbook.close();
复制代码

我通过用try catch,发现是IOException  Map faile。从经验感觉不会是逻辑代码问题,应该是进入到底层硬件相关的操作时出现了IOException,难道需要用一个带缓冲的IO操作?所以我将代码改为用outputstream,实验成功,代码如下:
  1. file = new File("xxx.xls");
  2. outputStream = new FileOutputStream(file);
  3. //POI的相关操作
  4. workbook.write(outputStream);
  5. workbook.close();
  6. outputStream.close();
复制代码






回复

使用道具 举报

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
 楼主| 发表于 2022-5-11 11:05:57 | 显示全部楼层
从上面的处理方式可以知道,一般来说涉及到IO操作时,能用带缓冲的处理方式就用带缓冲的处理方式,这样能增加系统的稳定性和可靠性。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-5-4 11:20 , Processed in 0.013966 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表