发布时间:2026/8/11 20:32:53
文件读写:字节流与字符流详解 (文件io) 1.文件内容操作java 提供了一系列类表示流对象1)字节流:以字节为基本单位进行读写2)以字符为基本单位进行读写2.⽂件内容的读写⸺字节流字节流的核心类2.1InputStreamInputStream 是抽象类,无法创建出具体的 实例. 抽象类会有抽象方法,没有定义,只有声明.抽象类存在的意义,就是为了被扩展(继承)上述抽象类, 在标准库里已经被创建好了子类,FileInputStream.从文件中读取数据FileInputStream构造方法签名说明FileInputStream(File file)利⽤ File 构造⽂件输⼊流FileInputStream(String name)利⽤⽂件路径构造⽂件输⼊流方法修饰符及返回值类型⽅法签名说明intread()读取⼀个字节的数据返回 -1 代表已经完全读完了intread(byte[] b)最多读取 b.length 字节的数据到 b中返回实际读到的数量-1 代表以及读完了intread(byte[] b, int off, int len)最多读取 len - off 字节的数据到 b 中放在从 off 开始返回实际读到的数量-1 代表以及读完了voidclose()关闭字节流代码示例import java.io.FileInputStream; import java.io.IOException; //使用字节流 public class demo { public static void main(String[] args) throws IOException { FileInputStream inputStream new FileInputStream(./1.txt); //通过 read 方法读取数据 while (true){ int data inputStream.read(); if(data-1){ //读到文件末尾 break; } //打印数据 System.out.printf(%x\n,data); } while(true){ byte[] bytes new byte[1024]; int n inputStream.read(bytes); if(n-1){ break; } for (int i 0; i n; i) { System.out.printf(0x%X\n,bytes[i]); } } //关闭文件 inputStream.close(); } }计算机中,读取硬盘,比读取内存,更低效.一次读一个字节,分N次读完(多次硬盘操作). 一次读NG字节,一次读完(一次硬盘读取) 效率可能差异很大~~try-with-resources 语法import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class demo8 { public static void main(String[] args) { try(InputStream inputStream new FileInputStream(./1.txt)){ while(true){ byte[] bytes new byte[1024]; int n inputStream.read(bytes); if(n-1){ break; } for (int i 0; i n; i) { System.out.printf(0x%x\n,bytes[i]); } } //close 不必写了 //会在try 结束的时候,自动调用 }catch (IOException e){ e.printStackTrace(); } } }try-with-resources语法要求写在括号里的资源需要实现 AutoCloseable 或 Closeable 接口FileInputStream 满足该条件无论 try 代码块正常运行结束还是中途抛出异常终止系统都会自动调用资源的 close () 方法关闭流无需我们在 finally 中手动编写关闭流的代码既简化了代码又能避免因忘记关闭流引发的文件资源占用与内存泄漏问题。2.2 OutputStream和InputStream类似OutputStream 同样只是⼀个抽象类要使⽤还需要具体的实现类。我们现在还是只关⼼写⼊⽂中所以使⽤FileOutputStreamFileOutputStream方法修饰符及返回值类型⽅法签名说明voidwrite(int b)写⼊要给字节的数据voidwrite(byte[] b)将 b 这个字符数组中的数据全部写⼊ os 中intvoidwrite(byte[] b, int off,int len)将 b 这个字符数组中从 off 开始的数据写⼊ os 中⼀共写 len 个voidclose()关闭字节流voidflush()代码示例import javax.imageio.IIOException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class demo9 { public static void main(String[] args) { try(OutputStream outputStream new FileOutputStream(./1.txt)){ outputStream.write(97); outputStream.write(98); outputStream.write(99); }catch (IIOException e){ e.printStackTrace(); } catch (IOException e) { throw new RuntimeException(e); } } }默认情况下, 使用OutputStream 打开文件,就会清空文件内容(操作系统原生api就是这样的)OutputStream outputStream new FileOutputStream(./1.txt,true)追加写,来解决3.⽂件内容的读写⸺字符流Reader FileReaderWriter FileWriter类似字节流1)打开文件2)读/写(字符为单位)3)关闭(通过try with resource)

相关新闻

2026/8/11 20:27:53

import 来 import 去就报错了?

📋 本期菜单:循环导入 init.py 过度初始化 import * 污染 相对导入失败 模块级副作用 reload 陷阱 name 守护 毛毛姐的项目从单文件长成了多模块。她把代码拆成了 fans.py、stats.py、main.py,觉得结构清晰多了。 然后 python main.py 一跑——ImportError: cannot …

2026/8/11 20:27:53

第1课:从技术到管理——为什么情绪能力决定你的天花板

周一早上九点,陈磊盯着团队周报,眉头越拧越紧。三个需求延期,两个bug没修,新人小王上周提的代码还是老样子。他深吸一口气,把所有人叫到会议室,逐条过问——“这个为什么没做完?”“这个怎么又出…

2026/8/11 20:27:53

应对AI Token成本危机:开源模型本地部署实战指南

这次我们来看一个正在影响所有AI开发者和企业的现实问题:Token消耗危机。这不是一个具体的开源项目,而是一个普遍存在的成本挑战。随着企业大规模部署AI应用,调用大模型API产生的Token费用正以惊人的速度增长,成为技术团队预算中不…

2026/8/11 21:22:56

KaTrain:如何用开源AI围棋训练工具提升你的棋力?

KaTrain:如何用开源AI围棋训练工具提升你的棋力? 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain 想要提升围棋水平却苦于找不到合适的训练方法?…

2026/8/11 21:22:56

嵌入式面试总结(三)——低功耗

一、引言随着物联网(IoT)、可穿戴设备和便携式电子产品的飞速发展,嵌入式系统的功耗已成为决定产品成败的关键因素之一。无论是追求数月甚至数年续航的传感器节点,还是需要频繁充电的智能手表,低功耗设计都直接关系到用…

2026/8/11 21:17:56

微信聊天记录恢复终极指南:PyWxDump完整备份教程

微信聊天记录恢复终极指南:PyWxDump完整备份教程 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 还在为微信聊天记录丢失而烦恼吗?想要安全备份重要对话却不知从何下手?今天我要为你介绍…

2026/8/11 3:03:40

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 5:34:14

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/11 0:00:39

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:39

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/10 11:20:30

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/11 17:06:59

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/11 3:05:11

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…