讲师中心 微信公众号
AI工具推荐 视频效率加速

在Java里如何实现学生信息导入导出_Java文件操作实战说明

阿萱小哥_4801

阿萱小哥_4801

发布时间:2026-02-03 13:15:36

|

1041人浏览过

|

来源于php中文网

原创

纯文本(CSV/TSV)导入导出最轻量,需注意分隔符处理与换行;序列化仅限Java内部使用,须固定serialVersionUID;POI处理Excel应选XSSFWorkbook/SXSSFWorkbook,日期读取用getDateCellValue;HTTP下载中文文件名需兼容设置Content-Disposition头。

在java里如何实现学生信息导入导出_java文件操作实战说明

用 BufferedReader 和 BufferedWriter 读写纯文本学生信息

纯文本(如 CSV 格式)是最轻量、兼容性最强的导入导出方式,适合快速调试或小规模数据。关键不是“能不能读”,而是字段分隔和换行处理是否鲁棒。

常见错误现象:NullPointerException(没判空)、IOException(文件路径含中文或权限不足)、字段含逗号导致解析错位。

  • 学生字段建议用制表符 \t 分隔,比逗号更安全;若必须用 CSV,需对字段内容做双引号包裹 + 双引号转义(如 "张"三" → "张""三")
  • 写入时务必调用 writer.newLine() 换行,不能只靠 \n —— Windows 下可能显示为单行
  • 读取时用 reader.readLine() 循环,每行用 String.split("\t", -1),加 -1 参数保留末尾空字段

用 ObjectInputStream / ObjectOutputStream 直接序列化学生对象

这种方式最省代码,但只适用于 Java 系统间传输,且要求类结构长期稳定。一旦 Student 类加了字段或改了包名,旧文件基本无法反序列化。

使用场景:内部工具临时存档、测试数据快照、无跨语言需求。

立即学习“Java免费学习笔记(深入)”;

记录数据一键导出 Excel/CSV(带样式)
记录数据一键导出 Excel/CSV(带样式)

把记录数组导出为带样式的 Excel(xlsx) 或带 BOM 的 CSV。支持列配置(表头/宽度/顺序)、表头冻结首行、斑马纹、布尔值转「是/否」、数组换行、CSV 中文防乱码。零依赖。触发词:导出 Excel、导出 CSV、记录转表格、列配置导出、数据导出、表格美化、JSON 转表格。

下载
  • Student 类必须实现 Serializable 接口,且显式声明 private static final long serialVersionUID = 1L; —— 否则 JVM 自动生成的 ID 每次编译都变,导致 InvalidClassException
  • 文件后缀建议用 .ser,避免被当成普通二进制文件误操作
  • 不要把 ArrayList<student></student> 直接序列化后反复追加——每次写入都是完整新对象流,读取时需按顺序一一反序列化,否则抛 StreamCorruptedException

用 Apache POI 处理 Excel(.xlsx)导入导出

用户要的是“看起来像 Excel”,而不是真的需要公式或图表。POI 的 XSSFWorkbook 足够,别碰 HSSFWorkbook(仅支持老旧 .xls,且有 65536 行限制)。

性能影响:千条以内数据无压力;万级数据建议用 SXSSFWorkbook(流式写入),否则容易 OOM。

  • 导出时,单元格值统一用 cell.setCellValue(String.valueOf(obj)),避免 setCellType 手动设类型——POI 5.0+ 已弃用该方法
  • 导入时,用 row.getCell(colIndex, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK) 避免 NullPointerException
  • 日期列读取务必用 cell.getDateCellValue(),别用 getStringCellValue() —— Excel 内部存的是浮点数天数,直接转字符串会得乱码数字

导出文件下载到浏览器时中文文件名乱码

这不是 Java 文件操作问题,而是 HTTP 响应头编码不一致导致的。Tomcat、Spring Boot 内置容器、Nginx 对 Content-Disposition 的解析逻辑不同。

最容易被忽略的地方:不是文件内容乱码,是下载弹窗里文件名变成 %E5%AD%A6%E7%94%9F.xlsx 或一堆问号。

  • Spring MVC 场景下,用 URLEncoder.encode(filename, "UTF-8") 后拼接,但 IE 仅认 filename*=UTF-8''xxx 格式,所以得兼容写法:
    String encodedName = URLEncoder.encode(filename, "UTF-8").replace("+", "%20");<br>response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"; filename*=UTF-8''" + encodedName);
  • 非 Spring 环境(如 Servlet),注意 Tomcat 9+ 默认禁用 % 解码,需在 conf/catalina.properties 加 relaxedPathChars="|" 并重启
  • 测试阶段直接用 Chrome / Edge,别依赖 Firefox 或国产双核浏览器的兼容模式——它们对 RFC 5987 支持不一致

热门AI工具

更多
PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

905

2023.10.26

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

324

2024.02.23

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

489

2024.02.23

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

305

2024.02.23

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

348

2024.02.23

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

349

2024.02.23

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

601

2024.02.23

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

322

2024.02.23

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 45.2万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn