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

新数据结构(13)——I/O

字符流

字符输入流(Reader)

字符输入流用于从数据源(如文件、字符串等)读取字符数据。Reader 是所有字符输入流的抽象基类。

常用实现类

FileReader 用于从文件中读取字符数据。

InputStreamReader 将字节流转换为字符流,可以指定字符编码。

BufferedReader 提供缓冲功能,提高读取效率,支持按行读取。

读取input.txt里的字符:

写入的五种方式:

字节流

字节输入流(InputStream)

InputStream 是所有字节输入流的抽象基类,它定义了读取字节数据的基本方法。常见的字节输入流子类有 FileInputStream、ByteArrayInputStream 等。

常用方法

  • int read():从输入流中读取一个字节的数据,返回值为读取的字节(范围是 0 - 255),如果到达流的末尾则返回 -1。
  • int read(byte[] b):从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中,返回实际读取的字节数,如果到达流的末尾则返回 -1。
  • int read(byte[] b, int off, int len):从输入流中读取最多 len 个字节的数据,并将其存储在数组 b 中,从偏移量 off 开始存储,返回实际读取的字节数,如果到达流的末尾则返回 -1。
  • void close():关闭此输入流并释放与之关联的所有系统资源。

用字节流实现复制:

package Test20250220_IO; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.FileOutputStream; import java.io.IOException; public class ByteStreamCopyExample { public static void main(String[] args) { // TODO Auto-generated method stub try { FileInputStream fis = new FileInputStream("C:\\Users\\ZhuanZ\\workspace\\newDataStructure\\src\\Test20250220_IO\\input.txt"); InputStreamReader isr = new InputStreamReader(fis,"UTF-8"); // 读取单个字节 int dataI; String dataO =""; while((dataI=isr.read())!=-1){ dataO+=((char)dataI)+""; } FileOutputStream fos= new FileOutputStream("C:\\Users\\ZhuanZ\\workspace\\newDataStructure\\src\\Test20250220_IO\\output.txt"); byte[] bytes = dataO.getBytes(); // 写入字节数组 fos.write(bytes); } catch(IOException e){ e.printStackTrace(); } } }

相关文章:

新数据结构(13)——I/O

字符流 字符输入流(Reader) 字符输入流用于从数据源(如文件、字符串等)读取字符数据。Reader 是所有字符输入流的抽象基类。 常用实现类 FileReader 用于从文件中读取字符数据。 InputStreamReader 将字节流转换为字符流&…...

PySide6学习专栏(四):用多线程完成复杂计算任务

如果计程序中要处理一个非常庞大的数据集中的数据,且数据处理计算很复杂,造成数据处理占用大量时间和CPU资源,如果不用多线程,仅在主进程中来处理数据,将会使整个程序卡死,必须采用多线程来处理这些数据是唯…...

Python多线程编程理解面试题解析

一、多线程介绍 Python 的多线程是一种实现并发编程的方式,允许程序同时执行多个任务。然而,由于 Python 的全局解释器锁(GIL)的存在,多线程在某些场景下可能无法充分利用多核 CPU 的性能。以下是对 Python 多线程的理…...

Flutter - 初体验

项目文件目录结构介绍 注:创建 Flutter 项目名称不要包含特殊字符,不要使用驼峰标识 // TODO 开发中运行一个 Flutter 三种启动方式 Run 冷启动从零开始启动Hot Reload 热重载执行 build 方法Hot Restart 热重启重新运行整个 APP 先看效果&#xff0c…...

使用最广泛的Web应用架构

目前互联网中没有一种绝对使用最广泛的Web应用架构,不同的架构在不同的场景和企业中都有广泛应用,但微服务架构和Serverless架构是当前较为主流和广泛使用的架构。以下是对这两种架构的具体分析: 微服务架构 适用场景广泛 大型互联网公司&a…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-split_dota.py

split_dota.py ultralytics\data\split_dota.py 目录 split_dota.py 1.所需的库和模块 2.def bbox_iof(polygon1, bbox2, eps1e-6): 3.def load_yolo_dota(data_root, split"train"): 4.def get_windows(im_size, crop_sizes(1024,), gaps(200,), im_rate_t…...

Unity shader glsl着色器特效之 模拟海面海浪效果

一个简单的海浪效果,通过波的叠加实现水面起伏的动效,根据波峰斜率来为浪花着色,再根据法线贴图和水花贴图来和调整uv的平滑移动来增强海浪移动的细节。如果需要更逼真的效果可以考虑在满足浪花触发的地方添加粒子系统 前置效果图 因为是很久…...

`AdminAdminDTO` 和 `userSession` 对象中的字段对应起来的表格

以下是将更正后的表格放在最前面的回答,表格包含序号列,合并了后端 AdminAdminDTO 和前端 userSession 的所有字段,并标注对方没有的字段。token 字段值用省略号(...)表示: 序号字段名AdminAdminDTO (后端…...

sqlserver查询内存使用情况的方法

查询 这个SQL查询用于获取当前数据库实例中各个数据库在缓冲池(buffer pool)中的数据页所占用的内存大小。 select isnull(db_name(database_id),ResourceDb) AS DatabaseName,CAST(COUNT(row_count) * 8.0 /(1024.0) AS DECIMAL(28,2)) AS [size (MB…...

rust笔记7-生命周期显式标注

Rust 的生命周期(Lifetimes)是 Rust 内存安全模型的核心部分,用于确保引用始终有效,避免悬垂引用(Dangling References)。下面我们从生命周期的设计出发点、标注语法以及在不同上下文中的应用(函数、方法、结构体、trait 等)来详细介绍。 1. 生命周期设计的出发点 Rus…...

SQL Server 导入Excel数据

1、选中指定要导入到哪个数据库,右键选择 》任务 》导入数据 2、数据源 选择Excel,点击 下一步(Next) 3、目前 选择OLE DB Provider ,点击 下一步(Next) 4、默认 ,点击 下一步(Next)…...

【笔记】LLM|Ubuntu22服务器极简本地部署DeepSeek+联网使用方式

2025/02/18说明:2月18日~2月20日是2024年度博客之星投票时间,走过路过可以帮忙点点投票吗?我想要前一百的实体证书,经过我严密的计算只要再拿到60票就稳了。一人可能会有多票,Thanks♪(・ω・)&am…...

【面试题】2025.02.19-前端面试题汇总

杭州三汇 1. 自我介绍 2. 你们前端项目为什么要用微前端? 减少由于程序更新导致的问题影响面积;缩小前端包体积,加快页面开发速度;便于统一多家医院某几个系统的程序一直; 3. 详细介绍一个项目,项目干什…...

小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统,不需要降级 v1.0.91 (2025)

小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统,不需要降级 v1.0.91 (2025) 本文内容需要你有一定的 Linux 操作基础,最好是程序员那种,英文水平足够用才行。一般人不需要使用这么复杂的路由器操作系统&#xff0c…...

火语言RPA--Excel插入空行

【组件功能】:在Excel内指定的位置插入空行 配置预览 配置说明 在第n行之前 支持T或# 填写添加插入第n行之前行号。 插入n行 支持T或# 插入多少行。 Sheet页名称 支持T或# Excel表格工作簿名称。 示例 Excel插入空行 描述 在第3行之后插入3行。 配置 输…...

具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)

整合各亚专科医学领域知识能力的AI代理的开发与研究 一、引言 1.1 研究背景 在科技飞速发展的当下,人工智能(AI)已成为推动各行业变革的关键力量,医疗领域也不例外。近年来,AI 在医疗行业的应用取得了显著进展,从医学影像诊断到疾病预测,从药物研发到个性化医疗,AI 技…...

【Java 优选算法】位运算

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 基础位运算符: &: 有 0 就是 0 | : 有 1 就是 1 ^ :相同为0,相异为1(无进位相加) 1.给一个数 n, 确定它的二进制表示中的第x位是 0 还是 1 . 使用公式(n >> x) &…...

细分数字货币钱包的不同种类

文章目录 一、中心化钱包1.1 中心化钱包架构1.2 中心化钱包业务细节流程 二、去中心化钱包(HD 钱包)2.1 去中心化钱包架构2.2 去中心化钱包细节业务流程 三、硬件钱包3.1 硬件钱包架构3.2 硬件钱包细节业务流程 四、MPC 托管钱包五、多签钱包 中心化钱包 :钱包私钥一…...

Nginx Embedded Variables 嵌入式变量解析(4)

Nginx Embedded Variables 嵌入式变量解析(4) 相关链接 nginx 嵌入式变量解析目录nginx 嵌入式变量全目录nginx 指令模块目录nginx 指令全目录 一、目录 1.1 变量目录 1.1.24 ngx_stream_core_module $binary_remote_addr $bytes_received $bytes_sent $connection $hos…...

ARM64 Trust Firmware [四]

完成第二阶段 BL2 的操作后就加载并进入 BL31,BL31 位于 DRAM 中,EL3 模式。除了做架构初始化和平台初始化外,还做了如下工作: 基本硬件初始化,比如 GIC,串口,timer 等;PSCI 服务的…...

GraalVM原生镜像编译:探索Java应用的新编译路径

GraalVM原生镜像编译:探索Java应用的新编译路径 在Java生态系统中,编译与部署一直是开发者关注的重点。传统的Java应用依赖于JVM(Java虚拟机)来运行,这虽然提供了跨平台的便利性,但也带来了启动延迟和较高的…...

2026指纹浏览器与AI风控对抗技术实践:动态环境适配与行为模拟的完整方案

2026 年,各大互联网平台的风控体系已全面升级为 AI 驱动的智能检测系统,不再依赖单一维度的特征匹配,而是通过多维度数据融合、行为模式分析、环境真实性评估等手段,实现对异常账号的精准识别。指纹浏览器作为多账号运营的核心工具…...

用STM32F103RCT6驱动4寸ST7796S屏,从接线到显示图片的保姆级教程

STM32F103RCT6驱动4寸ST7796S液晶屏全流程实战指南 第一次拿到STM32开发板和4寸液晶屏时,看着密密麻麻的引脚和陌生的专业术语,确实容易让人望而生畏。但别担心,本文将手把手带你完成从硬件连接到软件调试的全过程。不同于简单的代码复制粘贴…...

AI Agent公司集体转型:从“卖铲子”到下场做漫剧,内容为王时代已至!

1. AI漫剧新玩家入场如今随便点开一部漫剧,评论区大多是关注剧情和制作的观众,鲜少有人关注背后的制作公司。然而,这些公司的身份正日益多元化。短剧公司做漫剧,商业模式衔接顺畅;动画公司凭借制作技术,开拓…...

VSCode 2026实时协作不是“多人编辑”——而是重构了IDE生命周期(含VS Code Server v1.92内核补丁解读)

更多请点击: https://intelliparadigm.com 第一章:VSCode 2026实时协作的本质跃迁 VSCode 2026 将实时协作从“状态同步”推向“意图协同”,其核心在于服务端运行的 Collaborative Runtime Engine(CRE)直接解析编辑操…...

从 ArrayList 到 LinkedList:深入源码,图解 Java subList 的‘视图’魔法与性能影响

从 ArrayList 到 LinkedList:深入源码,图解 Java subList 的‘视图’魔法与性能影响 当你需要在 Java 中处理列表的部分数据时,subList 方法提供了一种看似简单却暗藏玄机的解决方案。不同于创建一个全新的列表副本,subList 生成的…...

从Substance到Blender:手把手教你用3DTextures.me的免费PBR材质打造写实场景

从Substance到Blender:手把手教你用3DTextures.me的免费PBR材质打造写实场景 在数字艺术创作中,材质与纹理是赋予模型灵魂的关键。许多3D艺术家在掌握基础建模后,常常陷入材质制作的瓶颈——如何快速获得高质量PBR材质?如何将专业…...

HunyuanVideo-Foley惊艳效果:AI生成的‘老式打字机’音效获专业录音师认可

HunyuanVideo-Foley惊艳效果:AI生成的老式打字机音效获专业录音师认可 1. 专业级音效生成能力展示 HunyuanVideo-Foley作为一款集视频生成与专业音效合成于一体的AI工具,近期因其生成的"老式打字机"音效获得了专业录音师的高度评价。这款基于…...

把RK3568开发板变成网络摄像头:Android 11下UVC视频输出保姆级配置指南

将RK3568开发板改造为高性能网络摄像头的完整实战指南 手里闲置的RK3568开发板除了跑Demo还能做什么?今天我要分享一个极具实用价值的改造方案——将它变成一台支持UVC协议的网络摄像头。这个方案不仅成本低廉,还能充分发挥RK3568的硬件编解码能力&#…...

【 PyTorch深入浅出】PyTorch从动态图到AI未来的核心引擎

导语:磨刀不误砍柴功,第一期先介绍一下什么是PyToch,知己知彼学起来就可以事半功倍。PyTorch从动态图到AI未来的核心引擎 PyTorch是一个开源的机器学习库,由Meta(原Facebook)AI研究团队于2017年正式发布&am…...