Java 日看一类(51)之IO包中的Reader类

5G(NR)物理层面试问答 1.什么是参数集(Numerologies)? 答:在5G中由于其频段很宽,设置了不同的子载波带宽,另根据频段、循环前缀、帧结构等组成了参数集。 2.5G中的循环前缀有几种? 答:5G网络支持5种子载波间隔,有两种循环前缀(正常和扩展)。其中:参数集2,即子载波间隔60kHz支持常规循环前缀和扩展循环前缀。 3.5G无线网络在下行(DL)和上行(UL)均使用OFDM波形? 答:5G网络下行链路(DL)和上行链路(UL)使用的波形及处理见下图: 4.5G物理层帧和子帧是多长时间? 答:5G. 阅读详情

该类完成了Readable、Closeable接口

无引入其他包




该类的类头注释如下:

/**
 * Abstract class for reading character streams.  The only methods that a
 * subclass must implement are read(char[], int, int) and close().  Most
 * subclasses, however, will override some of the methods defined here in order
 * to provide higher efficiency, additional functionality, or both.
 *
 *
 * @see BufferedReader
 * @see   LineNumberReader
 * @see CharArrayReader
 * @see InputStreamReader
 * @see   FileReader
 * @see FilterReader
 * @see   PushbackReader
 * @see PipedReader
 * @see StringReader
 * @see Writer
 *
 * @author      Mark Reinhold
 * @since       JDK1.1
 */

大意如下:

字符读入流的抽象类

该类子类必须完成read()(数组读取方法),close()方法

然而,该类的大部分子类都会覆写该类的声明的方法来提供更高的便利性

或者增加一些独有的方法



该类含有如下的成员变量:

同步线程锁(在一段时间内 仅有一个线程能触发该Reader

protected Object lock;

最大缓冲限制

private static final int maxSkipBufferSize = 8192;

跳过的字符的缓冲区

private char skipBuffer[] = null;




该类含有如下成员方法:

默认构造方法(初始化线程锁

protected Reader() {
    this.lock = this;
}

构造方法(提供其他流,对那个流加锁

protected Reader(Object lock) {
    if (lock == null) {
        throw new NullPointerException();
    }
    this.lock = lock;
}

读取数据到字符缓冲区

public int read(java.nio.CharBuffer target) throws IOException {
    int len = target.remaining();//获得当前CharBuffer的有效剩余可读取容量
    char[] cbuf = new char[len];
    int n = read(cbuf, 0, len);//把传入数据写入缓存
    if (n > 0)
        target.put(cbuf, 0, n);//需要完成put(char)方法,应该传入的是charbuffer的子类(string一类)
    return n;
}

返回读取字节的UTF-8码

public int read() throws IOException {
    char cb[] = new char[1];
    if (read(cb, 0, 1) == -1)
        return -1;
    else
        return cb[0];
}

读满传入的字符数组

public int read(char cbuf[]) throws IOException {
    return read(cbuf, 0, cbuf.length);
}

需要覆写的读取特定长度的字符数组

abstract public int read(char cbuf[], int off, int len) throws IOException;

跳过后续的n个字符

public long skip(long n) throws IOException {
    if (n < 0L)
        throw new IllegalArgumentException("skip value is negative");
    int nn = (int) Math.min(n, maxSkipBufferSize);//nn为传入址和限制值的较小量
    synchronized (lock) {
        if ((skipBuffer == null) || (skipBuffer.length < nn))//缓冲区不存在或者缓冲区小于当前nn值
            skipBuffer = new char[nn];
        long r = n;//记录需要跳过的数量
        while (r > 0) {
            int nc = read(skipBuffer, 0, (int)Math.min(r, nn));
            if (nc == -1)//流中无数据
                break;
            r -= nc;
        }
        return n - r;//返回实际跳过的值
    }
}

是否已经准备好读取(当然没准备好啊,实际还是个不完整的类

public boolean ready() throws IOException {
    return false;
}

是否支持标记操作(后续会加,基类一般只是给个接口

public boolean markSupported() {
    return false;
}

标记当前位置(当前不支持

public void mark(int readAheadLimit) throws IOException {
    throw new IOException("mark() not supported");
}

回滚操作(不支持

public void reset() throws IOException {
    throw new IOException("reset() not supported");
}

关闭流(需要释放占有的资源和流

abstract public void close() throws IOException;



该类是字符输入流的基类,本身功能比较简单,仅给出了大概的框架,具体实现可以去看看BufferReader、FilterReader等

OPPO 数据分析面试题及参考答案 如何设计共享单车数据库的各个字段? 对于共享单车的数据库设计,首先考虑用户相关的字段。用户表可以包含用户 ID,这是一个唯一标识符,用于区分不同用户;姓名,记录用户的真实姓名;联系方式,比如手机号码,方便在出现问题时联系用户;注册时间,记录用户何时开始使用共享单车服务;信用分数,用于衡量用户使用共享单车过程中的行为是否合规,比如是否按时归还车辆等。 车辆信息表要有车辆 ID,这是车辆的唯一标识;车辆类型,例如普通单车、电动单车等;投放时间,即车辆投放到市场的时间;车辆状态,包括是否可用(如正 阅读详情

相关推荐

深入MoveIt与OMPL集成开发:从源码编译到自定义规划算法实战

本文详细介绍了如何从源码编译集成MoveIt与OMPL,并实现自定义规划算法的完整流程。通过清理环境、获取源码、解决编译依赖与错误,最终指导开发者创建并集成名为MyRRT的自定义规划算法,从而实现对机器人运动规划栈的深度定制与优化。

h0i1j2k3l的博客 468

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

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

华为云官方博客 2100

东方财富API隐藏技巧:这样获取分时均价线数据更稳定(避坑指南)

本文深入解析东方财富API获取股票分时数据,特别是分时均价线的实战技巧与避坑指南。针对高频调用中常见的请求失败、数据错位及IP限制等问题,提供了从接口参数深层解析、稳健请求与错误处理机制,到系统优化与数据校验的全流程解决方案,帮助开发者构建稳定可靠的数据采集系统。

rice5的博客 2541

Java Reader类简介说明

Java Reader类简介说明

qq_25073223的博客 3664

保姆级教程:用SSC Tool 5.13为先楫HPM6E00EVK生成8轴EtherCAT从站代码(含XML配置详解)

本文详细介绍了如何使用SSC Tool 5.13为先楫HPM6E00EVK开发板配置8轴EtherCAT从站,包括XML文件深度配置、代码生成与工程整合、烧录与调试技巧。教程涵盖从环境准备到性能优化的全流程,帮助开发者快速实现符合CIA402标准的8轴控制。

weixin_30352645的博客 260

用例设计:滴滴打车从轿车到完成支付如何测?

滴滴打车全流程测试用例设计从业务场景覆盖、功能逻辑分解、异常流验证三个维度展开,系统化地构建了测试方案。首先,业务流主干场景被分解为叫车、行程中、支付结算三个阶段,每个阶段都设计了核心测试用例,包括正向和异常用例,如定位准确性、车型选择逻辑、路径偏移监控、费用实时计算、多支付方式兼容等。专项测试补充了状态机验证、资损防控测试和性能测试,确保系统在不同情况下的稳定性和安全性。测试数据策略采用等价类划分设计,实战技巧包括流量回放技术、混沌工程注入和计费沙盒验证,以提高测试的覆盖率和准确性。最终输出交付物包括流程

海姐软件测试的博客 1524

reader java_Java Reader 类

Java Reader 类在本教程中,我们将通过一个示例了解Java Reader、它的子类和它的方法。java.io包的Reader类是一个抽象超类,它代表字符流。由于Reader是抽象类,因此它本身不起作用。但是,其子类可用于读取数据。Reader子类为了使用的功能Reader,我们可以使用其子类。他们之中有一些是:在下一个教程中,我们将学习所有这些子类。创建Reader为了创建一个Reade...

weixin_39585974的博客 1009

晶圆测试(wafer sort)全流程解析:从探针卡到良率统计的实战指南

本文详细解析了晶圆测试(wafer sort)的全流程,从探针卡选型到良率统计的实战指南。涵盖了12英寸先进制程产线的关键技术,包括探针卡系统、测试程序开发、产线自动化集成及数据分析,特别聚焦多站点并行测试的时序优化和接触阻抗异常排查,帮助工程师提升测试效率与准确性。

weixin_29279153的博客 731

Java Reader与Writer:文本IO操作的精髓解析

在Java编程中,文本处理是一项基本任务,而Java的Reader与Writer提供了非常便捷的文本IO操作方式。本文将深入剖析Java中的Reader与Writer,介绍它们的基本概念、常见实现类、高级用法以及异常处理,帮助读者更好地掌握Java文本IO操作的精髓。Java中的Reader和Writer提供了强大的文本IO处理能力,使得我们能够轻松地读取和写入字符数据。通过本文的介绍,我们深入了解了它们的基本概念、常见实现类、高级用法和异常处理,希望读者能够更好地掌握这两个重要的字符IO类。

程序猿小样的博客 907

【Anaconda】conda国内镜像源快速配置指南(清华/阿里云)

本文详细介绍了如何为Anaconda配置国内镜像源(清华/阿里云),以显著提升conda包下载速度并减少安装失败率。通过分步指南和实用技巧,帮助开发者快速完成配置,优化Python开发环境。

weixin_33725722的博客 1488

R数据分析:潜在剖面分析LPA的做法与解释

Latent Profile Analysis (LPA) tries to identify clusters of individuals (i.e., latent profiles) based on responses to a series of continuous variables (i.e., indicators). LPA assumes that there are unobserved latent profiles that generate patterns of resp.

Codewar的博客 1万+

新版Java进阶之Reader-Writer字符流

在Java中, Writer 是所有字符输出流的超类。它提供了写⼊字符流的基本⽅法,如 write(int c) 、 write(char[] cbuf) 等Writer 是抽象类,通常使⽤它的⼦类如 FileWriter 、 BufferedWriter 、 OutputStreamWriter 等 来创建字符输出流对象。

qq_74916326的博客 1361

云端全自动AI漫剧生成工作流:从模型选型到完整实现

本文提出了一套云端全自动AI漫剧生成工作流解决方案,旨在解决传统漫剧制作效率低下的问题。该系统采用"编排引擎+模型矩阵"架构,通过集成大语言模型、图像生成、视频合成等技术,实现从剧本输入到成片输出的全流程自动化。 核心内容包括: 模型选型方案:剧本解析采用DeepSeek-V3/GPT-4o,图像生成使用DALL-E 3,视频合成选用Stable Video Diffusion,语音合成采用MiniMax TTS 系统架构设计:基于Celery分布式任务队列的编排层,分解任务至各功能模块

huanghm88的专栏 645

Java之IO流

生活中,流有水流,河流等,它们是通过水管或者是河渠等管道或通道按一定方向流动形成的。 Java中的IO流和现实中的流很像,也是通过特定的管道,数据按一定的方向流动形成了IO流。这也是我们今天主要讲的内容。 Java中IO流是实现输入,输出的基础,可以方便的实现数据的输入和输出。 Java的IO流中常用到的一些类有,File,InputStream,OutputStream,FileInput...

weixin_30256505的博客 90

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IO包概要

本文内容摘抄自 http://developer.51cto.com/art/201309/410792.htm http://blog.csdn.net/wong_judy/article/details/5262104   1、io简介 io中的输入、输出,是相对于内存来说,比如:写文件是将内存作为源端、磁盘作为接收端,从内存中输出到磁盘 2、io包中主要的类和接口  In...

那些年我们一起上过的项目 172

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java IO体系之InputStreamReader

介绍 字符输入流 源码 package java.io; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import sun.nio.cs.StreamDecoder; public class InputStreamReader extends Reader { private...

thebigdipperbdx的博客 388

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

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

Java学习笔记//关于IO流作业18.5.30

1.IO流可以分为节点流和处理流两类,其中前者处于IO操作的第一线2.输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数据,read()方法给程序提供了一个输入流中读取数据的基本方法 。3. _____序列化_______是指将Java对象转换成字节序列,从而可以保存到磁盘上,也可以在网络上传输,使得不同的计算机可以共享对象。4.在Java中,下列关于读写文件的描述错误的是(  B ...

qq_38429996的博客 814

java io

<br /> <br />转自:http://www.iteye.com/topic/600665<br />最近用到一些java.io包中的一些类接口,所以写了一些东西来复习。<br />Input和Output是同一类,而Reader和Writer另属同一类<br /> <br />Reader支持16位的Unicode字符的输出,而InputStream只支持8位字符输出。他们的大概结构如下:<br /> <br />InputStream的子类有:<br />               FileI

qinggreen的专栏 432

InputStreamReader 和FileReader的区别及InputStream和Reader的区别

原文:http://www.jb51.net/article/76773.htm 首先给大家介绍InputStreamReader 和FileReader的区别,具体内容如下所示: InputStreamReader 和 BufferedReader 。其中最重要的类是 InputStreamReader ,它是字节转换为字符的桥梁。 你可以在构造器重指定编码的方式,如果不指定的话

1953

IO

简介 字节流 InputStream OutputStream 字符流 Reader Writer Read write flush close FileInputStream ObjectInputStream DataInputStream enum

qq_43711676的博客 163

【愚公系列】2023年10月 Java教学课程 059-IO流之字符流

Java中IO流(Input/Output stream)用于处理输入和输出数据的机制,它包括输入流和输出流两个部分。输入流用于从外部读取数据,输出流用于向外部写入数据。Java中的IO流可以让我们从文件、网络、控制台等地方读取数据和输出数据。IO流主要分为字节流和字符流两类,字节流适用于处理二进制数据,而字符流适用于处理文本数据。Java中的IO流分层结构非常清晰,所有的输入流和输出流都是从抽象基类InputStream和OutputStream派生出来的。

愚公智库 3万+

Java I/O总结——Reader

25十一2009 InputSteream和OutpurStream是针对基于字节(byte)输入输出设计的,实际应用中常常需要读写的是基于字符(char ,Unicode 2个字节)的,java.io.Reader和java.io.Writer就是所有读写字符数据流的父类。 Reader提供的方法和InputStream提供的几乎是一样的,不同之处在于Rea...

weixin_33713503的博客 192

Java基础--IO流

1.IO流概念 1.1流的概念 流(stream):流是一连串流动的数据(字节、字符),以先进先出的方式发送的信息的通道中。 1.2输入流和输出流 输入流:数据从源数据源流入程序的过程称为输入流,可以理解为从源数据源读取数据到程序的过程。 输出流:数据从程序流出到目的地的过程称为输出流,可以理解为把数据从程序写入目的地的过程。 1.3IO流的分类 按照流向分为输入流和输出...

weixin_30412013的博客 207

[19/03/31-星期日] IO技术_四大抽象类_字符流( 字符输入流 Reader、 字符输出流 Writer )(含字符缓冲类)...

一、概念 Reader Reader用于读取的字符流抽象类,数据单位为字符。 int read(): 读取一个字符的数据,并将字符的值作为int类型返回(0-65535之间的一个值,即Unicode值)。如果未读出字符则返回-1(返回值为-1表示读取结束)。 void close() : 关闭流对象,释放相关系统资源。 1 /*字符输入流 Re...

weixin_30896763的博客 174

【Java 基础】Java IO 的分类

Java IO 按照数据操作方式进行分类,通常分为以下几类.....

激流丶的博客 1630

Java中IO体系

我认为可以用“字节流操作类”和“字符流从操作类”组成Java IO流体系 1,基于字节流: InputStream:FileInputStream、ByteArrayInputStream、StringBufferInputStream、SequenceInputStream、PipledInputStream、ObjectInputStream、FilterInputStream(Buffe...

Joker 138
上一篇: Java 日看一类(50)之IO包中的RandomAccessFile
下一篇: Java 日看一类(52)之IO包中的SequenceInputStream流
wyf95278
博客等级 码龄10年 38粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值