当前位置: 首页 > news >正文

Java IO流·文件传输

这里的IO框架是Java.io那一套流体系,聚焦两件事:

1.IO流怎么分类、各自干什么

2.怎么用字节流+Socket做网络文件传输

1.两个分类视角

1.1按数据格式:字节流vs字符流

类别抽象基类(输入/输出)单位典型场景
字节流InputStream/OutputStream8-bit字节,不做编码转换图片/音视频/压缩包/任意文件;Socket网络传输必须用字节流
字符流Reader/Writer16-bit Unicode,内置编码转换(GBK→UTF-8)纯文本txt csv json xml ,避免中文乱码

记忆:网络传输、拷任何文件→字节流。只有“确定是纯文本”才用字符流

1.2按功能角色:节点流vs处理流(包装流)

节点流(直接怼数据源,原始流)

·FileInputStream/FileOutputStream:直接读写磁盘文件

·ByteArrayInputStream/ByteArrayOutputStream:以内存byte[]为数据源(缓存/内存操作)

·Socket.getInputStream()/getOutputStream():网络连接的原始字节流,底层 TCP

处理流(包在别的流外面,加功能)

  • BufferedInputStream/BufferedOutputStream:内置缓冲区(默认 8KB),减少系统调用,性能关键
  • DataInputStream/DataOutputStream:直接读写int/long/UTF,固定字节序,跨平台一致 → 发元数据(文件名/大小)/ 自定义协议头
  • ObjectInputStream/ObjectOutputStream:对象序列化 / 反序列化(类需实现Serializable
  • InputStreamReader/OutputStreamWriter:字节流 ↔ 字符流转换桥梁,可指定字符集
  • PrintStream/PrintWriterprint()/println(),格式化输出(System.out就是PrintStream

速记:节点流是“水管直接接水源”,处理流是“在水管上套过滤/加压/计算器”

2.Socket文件传输的“包装链”思想

正确顺序(由内到外)

1.节点流FileInputStream——从磁盘读原始字节

2.处理流BufferedInputStream——加缓冲提速

3.处理流DataOutputStream——先发元数据(文件名/大小),再发内容

3.速记清单

  • 网络 / 文件拷贝 → 字节流(InputStream/OutputStream
  • 纯文本 → 字符流(Reader/Writer
  • 性能 → 必包Buffered
  • 循环读:while ((len = in.read(buf)) != -1)out.write(buf, 0, len)
  • 发完 →flush()
  • 资源 →try (...)
http://www.jsqmd.com/news/1318874/

相关文章:

  • 联想ThinkPad M4400无线网卡升级:破解BIOS白名单与硬件兼容性实战
  • Python异步网络编程实战:aiohttp高效应用指南
  • Python轻量级ORM框架PyMe实战:解决SQLite开发痛点
  • IL1RAP在炎症与肿瘤中的关键作用及靶向治疗进展
  • 2026建筑AI智能设计服务商参考指南:自动化设计、智能化方案、开源模型工具正规机构整理 - damaigeo
  • USB端点与管道:通信架构核心解析与实战开发
  • 单片机毕设选题推荐:基于单片机 TS-300B 浊度检测报警设备设计 基于 51 内核单片机的水质智能预警装置实现(018101)
  • NAS流媒体平台全解析:Plex、Jellyfin、Kodi、VideoStation对比与实战
  • 阿里云认证新手指南:从ACA到ACP的备考策略
  • 《真三国无双:起源》鬼神吕布Mod安装与效果验证全攻略
  • Python编程基础与三大结构全解析
  • 无人机视角航拍高速公路上三轮车检测数据集VOC+YOLO格式976张1类别
  • Map 双列集合语法详解
  • 64QAM系统设计123(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 办公室装修:如何选择现代、简约、高档风格的好公司 - mypinpai
  • Vibe Coding实战指南:AI协作编程从入门到精通
  • 降重后论文逻辑全乱,有哪些真正闭眼可入的的降AI率网站推荐?
  • Prescan/CarSim 全流程建模+仿真+报告123(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 配电网最优潮流计算:二阶锥松弛技术与Matlab实现
  • Nginx搭建本地瓦片地图服务全指南
  • AE自动化动画核心:父子级链接与表达式组合应用实战
  • 长三角反应釜减速机厂家怎么选?2026年供应商推荐与选型要点分析 - 优质品牌商家
  • 二维正态分布等高线形态与协方差矩阵解析
  • Maxwell脚本实现永磁同步电机斜极3D建模自动化
  • PFC控制系统的仿真➕报告12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 东方翻译院性价比怎么样 2026值得信赖的翻译服务品质之选 - mypinpai
  • PyTorch维度操作:unsqueeze与squeeze原理、应用与实战技巧
  • SRWE完全指南:5分钟掌握Windows窗口实时编辑的终极技巧
  • Mybatis-Plus saveBatch失效排查:从JDBC批处理到事务边界的深度解析
  • SpringBoot文件与JSON参数同接口接收:@RequestPart方案详解