Java常用API 之 java.io.Reader字符流(附解析和示例)_09

Java.io包(Reader) BufferedInputStream Java.io.FilterInputStream BufferedOutputStream FilterOutputStream BufferedWriter Writer ByteArrayInputStream InputStream ByteArrayOutputStream OutputStream CharArrayWriter Writer Console extends Object implements Flushable DataInputStre 阅读详情

java.io.Reader类描述:

Reader类是一个抽象类,作用是读取字符流。子类必须实现的方法只有 read(char[ ], int, int) 和 close( )。

抽象类的概念:

抽象类是指拥有抽象方法的类,包含一个或多个抽象方法的类必须被声明为抽象的。但除了抽象的方法之外,抽象类还可以包含具体数据和具体方法,这一点与普通类一样。抽象方法充当着占位的角色,它们的具体实现在子类中。拓展抽象类可以有两种选择,一种是在子类中实现抽象类(父类)的部分抽象类方法或不实现抽象类(父类)的抽象方法,这样就子类也成了抽象类;另一种是在子类中实现抽象类(父类)的全部抽象方法,这样一来,子类就不是抽象的了。


public abstract class Reader //源码:Reader类的声明
extends Object
implements Readable, Closeable

Reader类实现了Java.lang.Readable接口和java.io.Closeable接口。

  1. Readable接口代表一个字符源,实现了Readable接口的字符可以通过调用read( )方法将字符添加到指定的字符缓冲区。 int read(CharBuffer cb) ,返回的是添加到到缓冲区的的字符数量,如果字符源已在末端,则返回-1。
  2. Closeable接口代表一个可以关闭的数据源。调用void close( )方法可以关闭数据流并释放与此数据流关联的所有系统资源。

--------------------------------------------------------静态变量-------------------------------------------------------

protected  Object lock :用于同步对此流操作的对象。为了提高效率,字符流对象可以使用其自身以外的对象来保护临界区。因此,子类应使用此字段中的对象,而不是使用this 或者使用同步方法。

临界区的概念:临界区指的是某段代码区,这段代码操作了被多个对象共享的资源,这部分代码需引入同步机制来保证一个对象在临界区运行时其他对象暂时不能对临界区进行访问。

------------------------------------------------------构造函数------------------------------------------------------

构造函数
protected Reader( )创建一个新的字符流 reader,其临界区与自身同步。
protected Reader(Object lock)创建一个新的字符流 reader,其临界区与指定对象同步。

---------------------------------------对象方法(前两个是抽象方法,子类必须实现它们)------------------------

方法
abstract  void close( )  关闭该流并释放与之关联的所有资源。
abstract  int read(char[ ] cbuf, int off, int len)  将字符读入数组的某一部分。
 int read( ) 读取单个字符。发生 I/O 错误或者已到达流的末尾,此方法就会进入阻塞状态,直到字符可用才回到就绪状态。
用于支持高效的单字符输入的子类应重写此方法。
int read(CharBuffer target) 试图将字符读入指定的字符缓冲区。如果发生 I/O 错误或者已到达流的末尾,此方法会进入阻塞状态。
 int read(char[ ] cbuf) 将字符读入数组。如果发生 I/O 错误或者已到达流的末尾,此方法会进入阻塞状态。
void mark(int readAheadLimit) 标记流中的当前位置。对 reset( ) 的调用将尝试将该流重新定位到标记点。并不是所有的字符输入流都支持 mark( ) 操作。
boolean markSupported( ) 判断此流是否支持 mark() 操作。默认实现始终返回 false。子类应重写此方法。
boolean ready( ) 判断是否准备读取此流。如果保证下一个 read( ) 不被阻塞,则返回 True,否则返回 false。注意,返回 false 并不保证下一次读取会被阻塞,也就是说处于不确定的状态。
void reset( ) 重置该流。如果流已标记过,则尝试将流重新定位到标记点。如果流未标记过,则以特定的某种适合的方式尝试重置该流,例如,通过将该流重新定位到起始点。并不是所有的字符输入流都支持 reset() 操作,有些支持 reset() 而不支持 mark()。
long skip(long n) 跳过n个字符。如果发生 I/O 错误或者已到达流的末尾,此方法会进入

------------------------------------------------------------------------------------------------------------

java6中文文档在这部分翻译的好渣,各种错误。。不得不对照着英文文档看

Java 语法特性历史演化全览概述(JDK 1.0 — JDK 7) JDK 1.0-1.4:无泛型,集合操作需要强制类型转换↓JDK 5.0 :引入泛型,编译期类型检查↓JDK 7 :钻石运算符,减少泛型冗余声明。 阅读详情

相关推荐

java io reader

java io reader java io reader

一步步带你剖析Java中的Reader类

本文将对Java中的Reader进行详细介绍,并分析其优缺点及应用场景。

华为云官方博客 2099

深入解析SGLang框架:从架构设计到核心组件实现

本文深入解析了SGLang框架的架构设计与核心组件实现。SGLang是一个专为大语言模型推理设计的高效框架,其核心优势在于清晰的分层架构、高效的调度策略以及精细的内存管理。文章详细剖析了其客户端接入、服务器端调度、模型执行引擎及Tokenizer/Detokenizer管理器等关键组件,揭示了其实现高性能推理的内部机制。

coffee的博客 577

Java IO (3) - Reader

Java IO (3) - Reader 前言 JavaIO一共包括两种,一种是stream,一种是reader/writer,每种又包括in/out,所以一共是四种包。Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存...

182

遥感大模型的深度学习从CNN到Vision Transformer以及混合架构的演进之路

深度学习,特别是以卷积神经网络(CNN)和Transformer为代表的“大模型”技术,正以其强大的表征学习能力,深刻地重塑着遥感智能解译的整个技术栈与认知范式。本文将系统性地梳理遥感大模型从局部卷积的奠基,到全局注意力的革命,再到二者融合的混合架构演进这一波澜壮阔的历程。我们将深入剖析每个阶段的核心技术原理,结合遥感数据特性与实际应用案例,详细阐述其在分类、检测、分割等核心任务中的具体应用。

panshengwu的博客 1138

BERTopic模型入门教程(附代码+参数调节)

BERTopic 是一种用于从文本数据中提取主题模型的新型方法。通过结合 BERT嵌入和传统的主题模型来生成语义丰富的主题。传统的主题模型(如LDA)主要依赖于词频矩阵,而 BERTopic 通过预训练语言模型生成高维语义嵌入来捕捉词语间的复杂关系,因此可以更好地处理上下文信息。BERTopic模型可以看作是创建其主题表示的一系列步骤。核心原理如下:就本质而言,BERTopic就是一个拼装框架,可以把每部分都替换成其他模型,只要完成任务即可。

m0_52069102的博客 1万+

Java的Reader和Writer

Reader Reader 是Java的IO库提供的另一个输入流接口。和 InputStream 的区别是,InputStream 是一个字节流,即以 byte 为单位读取,而 Reader 是一个 字符 流,即以 char 为单位读取: InputStream Reader 字节流,以byte为单位 字符流,以char为单位 读取字节(-1,0~255):int read()...

cd_sywe的博客 2314

Keil 编译输出信息分析:Program size: Code, RO-data , RW-data, ZI-data

一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。如图所示,在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息。

qq_40305944的博客 4578

Java-IO-FAQ-文件读写的五种方法

文件读写

深度安全实验室 1303

【论文精读】DisCo: Graph-Based Disentangled Contrastive Learning for Cold-Start Cross-Domain Recommendat

源域中具有相似偏好的用户在目标域中可能会表现出不同的兴趣。因此,直接迁移嵌入可能会引入不相关的源域协同信息。提出了一个基于图的解耦对比学习框架,以捕捉细粒度的用户意图并过滤掉不相关的协同信息,从而避免负迁移。 具体而言,对于每个域,我们使用多通道图编码器来捕捉多样化的用户意图。然后,我们在嵌入空间中构建亲和图,并执行多步随机游走以捕捉高阶用户相似性关系。将一个域视为目标域,我们提出了一种以用户相似性为指导的解耦意图对比学习方法,以优化跨域的用户意图桥接。

qq_52342142的博客 1227

基于轻量化网络的干扰信号智能识别算法

针对干扰信号识别时卷积神经网络模型体积大、训练周期长、对硬件存储和计算要求高等问题,本 文提出了一种基于改进轻量级网络模型 SqueezeNet 的干扰信号智能识别算法。该方法首先利用距离多普勒 (Range‑Doppler,RD)处理获得目标及干扰信号的RD图像,接着采用滑窗变换、归一化等技术对RD图像进行重 塑;然后采用基于 RD 信息尺寸的隐层和通道剪枝措施对 SqueezeNet 网络进行改进,缩小了模型尺寸和存储空 间;最后利用不同参数的测试样本拓展网络模型的泛化性能。

qq_43416206的博客 545

java io系列

转自:http://www.cnblogs.com/skywang12345/p/io_01.html 总结的全是很好,值得学习! 原文中对IO的各个方法都有讲述! 前言 关于java的io部分,以前学习过。当时学习的节奏是,首先了解io的相关介绍,再查看io的使用示例,最后才是打开API参考文档并参考文档通过写demo来学习。结果,当时是了解了API的使用方法;可是一段时间...

Clearlight's Blog 395

ican项目四汽车零件智能测量

ican项目四汽车零件智能测量

weixin_72050316的博客 561

java中io使用例子_java中io例子

Java IO教程Java IO 是一套Java用来读写数据(输入和输出)的API。大部分程序都要处理一些输入,并由输入产生一些输出。Java为此提供了java.io包。如果你浏览下java.io包,会对其中各样的类选择感到迷惑。这些类的作用都是什么?对于某个任务该选择哪个类?怎样创建你自己的类做插件?这个手册的...文章青衫无名2017-05-231468浏览量Java transient关键字...

weixin_36379029的博客 376

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java io目录_java io系列01之 "目录"

java io 系列目录如下:前言关于java的io部分,以前学习过。当时学习的节奏是,首先了解io的相关介绍,再查看io的使用示例,最后才是打开API参考文档并参考文档通过写demo来学习。结果,当时是了解了API的使用方法;可是一段时间之后,只能零零碎碎的记得一些片段,再要自己讲出个所以然来,已经非常之艰难。之所以造成这种困境,我想主要是:一,学习的时候,理解的不够彻底,没有真正理解它的思想和...

weixin_39725365的博客 105

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

常见的IO流

常用之IO流

m0_62571154的博客 520

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

第十八课:IO

IOFile路径IO流 File File指文件类,可以用来表示文件或者目录 构造方法: new File(String 文件路径) new File(String 父路径,String子路径) 常用API: getPath:获得文件与目录的绝对路径 listFiles():获得file对象中所用的文件 File file = new File("."); 具体效果如下图代码: 下面展示一些 内联代码片。 // A code block var foo = 'bar'; public void delet

xinyoulinxi0512的博客 178

java io目录_java io系列之 "目录"

java io 系列目录如下:前言关于java的io部分,以前学习过。当时学习的节奏是,首先了解io的相关介绍,再查看io的使用示例,最后才是打开API参考文档并参考文档通过写demo来学习。结果,当时是了解了API的使用方法;可是一段时间之后,只能零零碎碎的记得一些片段,再要自己讲出个所以然来,已经非常之艰难。之所以造成这种困境,我想主要是:一,学习的时候,理解的不够彻底,没有真正理解它的思想和...

weixin_28939637的博客 129

JAVA学习 API_day09(文件操作, I/O流)

文件操作, I/O流1. 文件操作1.File - 文件类, 可以表示文件或者目录2.路径2. IO 流 1. 文件操作 IO: Input/读文件 Output/写文件 所属软件包: java.io 1.File - 文件类, 可以表示文件或者目录 构造方法: new File(String 文件路径) new File(String 父路径, String 子路径) 常用API: 获得文件/目录的绝对路径 获得file对象中所有的文件 listFiles() File

qq_42294705的博客 434

JAVAIO流(09)

JAVAio流的简介 通过学习本文档后能够掌握到的知识点 1、JAVA的io是什么 2、字符流和字节流 3、如何使用io 4、递归查询所有的文件夹的文件 5、正则表达式 6、XML的处理及基本概念 子曰:“学而不思则罔,思而不学则殆。” 1. 什么是IO 1.1概念 IO其实指的是INPUT和OUTPUT,输入输出。 IO对数据进行输入和输出,比如键盘输入、...

帅哥威的博客 264

Java基础加强重温_09:File、递归、IO流、字节输入流、字节输出流、字符输入流、字符输出流、图片复制案例、【字节、字符、字节数组、字符数组、字符串】

摘要 一、File类 java.io.File 类是文件和目录路径名的抽象表示,主要⽤用于文件和目录的创建、查找和删除等操作。 绝对路径 以盘符开始的路径,在系统中具有唯一性 比如说: c:/aaa/bbb/a.txt、d:/xxx/yyy/a.txt 相对路径 相对某个位置而已,不具有唯一性 比如:a.txt,默认相对于当前项目的根目录 比如:aaa/a.txt 默认相对于当前项目的根目录 如...

Jinniu00 的博客 431

Java面试通关②:IO与反射核心全集

摘要:IO流与反射是Java框架底层核心支撑技术、中高频面试重难点,Spring、MyBatis等主流框架的底层实现均依赖这两大机制,属于进阶开发必备核心能力。多数开发者仅会简单文件读写、反射调用,不了解IO模型差异、类加载原理、底层执行逻辑,无法应对高阶面试与源码解读场景。本篇完整梳理BIO/NIO/AIO三大IO模型、各类流机制、反射核心原理、类加载与双亲委派模型,结合源码解析、场景对比、实战避坑与高频真题,打通框架底层原理认知,补齐进阶开发核心短板,适配面试深挖、源码学习、生产落地场景。

折哥|智能物流与Java实战,副高数据库工程师。深耕出版社物流WMS/OMS(线体/立库/VGA),也分享Java进阶与OMS电商对接。Oracle→PG实战派。相信沉淀可迁移能力,分享通用技术,不藏不虚。 355

java io系列01之 "目录"

java io 系列目录如下: 01. java io系列01之  "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream) 03. java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream) 04. java io系列04

XINJing的专栏 370

java io 流

输入流和输出流:往程序中读入的流就是输入流(InputStream和Reader的子类),从程序写出到其他介质的流就是输出流(OutputStream和Writer的子类)。 节点流和处理流:节点流为直接操作外部介质的类如FileOutputStream,FileInputStream,FileWriter,FileReader等。处理流为套接在节点流上的流如缓冲流BufferedInputSt...

weixin_33901641的博客 61
上一篇: Java I/O基础框架_08
下一篇: Java常用API 之 java.io.InputStreamReader(附解析和示例)_10
coder__666
博客等级 码龄9年 42粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值