当前位置: 首页 > 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(); } } }

http://www.lryc.cn/news/541063.html

相关文章:

  • PySide6学习专栏(四):用多线程完成复杂计算任务
  • Python多线程编程理解面试题解析
  • Flutter - 初体验
  • 使用最广泛的Web应用架构
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-split_dota.py
  • Unity shader glsl着色器特效之 模拟海面海浪效果
  • `AdminAdminDTO` 和 `userSession` 对象中的字段对应起来的表格
  • sqlserver查询内存使用情况的方法
  • rust笔记7-生命周期显式标注
  • SQL Server 导入Excel数据
  • 【笔记】LLM|Ubuntu22服务器极简本地部署DeepSeek+联网使用方式
  • 【面试题】2025.02.19-前端面试题汇总
  • 小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统,不需要降级 v1.0.91 (2025)
  • 火语言RPA--Excel插入空行
  • 具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)
  • 【Java 优选算法】位运算
  • 细分数字货币钱包的不同种类
  • Nginx Embedded Variables 嵌入式变量解析(4)
  • ARM64 Trust Firmware [四]
  • SQLMesh 系列教程6- 详解 Python 模型
  • 聊一聊vue如何实现角色权限的控制的
  • Python连接MySQL数据库图文教程,Python连接数据库MySQL入门教程
  • 懒人精灵本地离线卡密验证系统教程(不联网、安全稳定、省钱、永久免费、无任何限制)
  • 天 锐 蓝盾终端安全管理系统:办公U盘拷贝使用管控限制
  • LeetCode 2595.奇偶位数:位运算
  • 一周学会Flask3 Python Web开发-response响应格式
  • uni-app开发app时 使用uni.chooseLocation遇到的问题
  • Android Hal AIDL 简介 (一)
  • 鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )
  • 华为昇腾910b服务器部署DeepSeek翻车现场