文件读写:字节流与字符流详解 (文件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)

相关新闻

ReAct大模型入门:小白也能学会的智能推理与行动策略(收藏版)

ReAct大模型入门:小白也能学会的智能推理与行动策略(收藏版)

ReAct大模型通过“推理行动”的简单机制,解决复杂任务。它先判断信息是否足够,若不足则主动调用工具(如搜索、API等)获取数据,再结合结果进行下一步决策。与传统问答不同,ReAct能处理实时信息、依赖外部系统…

2026/8/11 20:33:26 阅读更多 →
2026年小白程序员必看:Agent开发爆发,高薪Offer等你拿!

2026年小白程序员必看:Agent开发爆发,高薪Offer等你拿!

随着AI技术的快速发展,Agent开发和AI大模型岗位需求激增,传统软件开发需求下降25%,而AI相关岗位需求增长超过60%。2026年春招中,相关岗位同比增长455%。尽管高薪诱惑众多,但市场缺乏能胜任岗位的人才。 2026年&#xf…

2026/8/11 20:33:26 阅读更多 →
嵌入式总线设备解析——TSN原理与实践

嵌入式总线设备解析——TSN原理与实践

1. 引言:为什么需要TSN? 在传统的工业自动化、汽车电子和航空航天等领域,实时通信网络(如CAN、EtherCAT、PROFINET等)虽然满足了基本的实时性要求,但随着智能化、网联化的发展,系统对数据传输的…

2026/8/11 20:33:26 阅读更多 →

最新新闻

028、自由曲面镜片的量产之痛——设计上能矫正像散但组装公差±5μm就崩——从检测到AA制程的良率提升实战记录

028、自由曲面镜片的量产之痛——设计上能矫正像散但组装公差±5μm就崩——从检测到AA制程的良率提升实战记录

028、自由曲面镜片的量产之痛——设计上能矫正像散但组装公差5μm就崩——从检测到AA制程的良率提升实战记录 凌晨两点,产线电话把我从梦里拽出来。那边是跟了三个月的夜班工艺员,声音发紧:“王工,自由曲面镜头组装良率又掉了&…

2026/8/11 21:15:40 阅读更多 →
新网站在搜索引擎完全搜不到怎么优化?(四)——提交搜索引擎搜索资源平台

新网站在搜索引擎完全搜不到怎么优化?(四)——提交搜索引擎搜索资源平台

前面两篇,我对刚上线的网站做了基础排查。网站是:聆机智能制造业AI工具箱地址:https://ai.linkede.cn第一轮检查确认,百度蜘蛛能够正常访问首页,服务器返回 HTTP 200,原始 HTML 中也能直接读取网站名称、8D…

2026/8/11 21:15:39 阅读更多 →
如何构建AI驱动的网络安全自动化平台:5大核心模块深度解析

如何构建AI驱动的网络安全自动化平台:5大核心模块深度解析

如何构建AI驱动的网络安全自动化平台:5大核心模块深度解析 【免费下载链接】CyberStrikeAI The system of action for AI-native cybersecurity—where intent becomes governed execution, evidence becomes operational memory, and every operation improves the…

2026/8/11 21:15:39 阅读更多 →
从14GB到3.5GB:大模型推理优化的终极生存指南

从14GB到3.5GB:大模型推理优化的终极生存指南

目录 推理优化概述 模型量化:FP16 到 INT4 模型剪枝:结构化与非结构化 知识蒸馏:大模型教小模型 KV Cache 优化:PagedAttention 与共享 推理引擎:vLLM、TensorRT-LLM 实践建议与最佳实践 摘要 推理优化的目标是在精度损失可控的前提下压缩模型体积并提高服务吞吐:以 7B 模…

2026/8/11 21:15:39 阅读更多 →
终极任天堂DS菜单改造指南:TWiLight Menu++让你的老设备焕发新生

终极任天堂DS菜单改造指南:TWiLight Menu++让你的老设备焕发新生

终极任天堂DS菜单改造指南:TWiLight Menu让你的老设备焕发新生 【免费下载链接】TWiLightMenu DSi Menu replacement for DS/DSi/3DS/2DS 项目地址: https://gitcode.com/gh_mirrors/tw/TWiLightMenu 你是否还在为老旧的任天堂DS、DSi或3DS设备那单调的系统界…

2026/8/11 21:15:39 阅读更多 →
多微电网拓扑优化中的约束差分进化算法应用

多微电网拓扑优化中的约束差分进化算法应用

1. 多微电网拓扑设计的工程挑战与算法选择 在分布式能源系统快速发展的今天,多微电网(Multi-Microgrid, MMG)的协同优化已成为电力系统领域的前沿课题。我去年参与的一个工业园区微电网群项目,就深刻体会到传统设计方法的局限性—…

2026/8/11 21:14:39 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

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

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

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

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

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

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

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

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

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →