Java IO字符流常见类进行分析(四)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

一、Reader
用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
ready() 判断是否准备读取此流。
read() 读取单个字符,这个方法将会阻塞,直到字符可用。
二、BufferedReader
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。例如,

BufferedReader in = new BufferedReader(new FileReader("foo.in"));

将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
readLine() 读取一个文本行。
三、Writer
写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
四、BufferedWriter
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 (‘\n’) 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。
通常 Writer 将其输出立即发送到底层字符或字节流。除非要求提示输出,否则建议用 BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer(如 FileWriters 和 OutputStreamWriters)。例如,

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

将缓冲 PrintWriter 对文件的输出。如果没有缓冲,则每次调用 print() 方法会导致将字符转换为字节,然后立即写入到文件,而这是极其低效的。
五、PrintWriter
向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。与 PrintStream 类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。
此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用 checkError() 是否出现错误。

50、Java IO 包及相关的详细解析 本文详细解析了Java IO包的核心接口,包括字节流字符流的分与使用,重点介绍了缓冲流、非流如File和RandomAccessFile的用途,并提供了代码示例帮助理解。此外,还涵盖了Java 5.0对I/O流的改进、异常处理机制及性能优化建议,旨在帮助开发者更好地掌握Java IO包在实际项目中的应用。 阅读详情

相关推荐

手把手教你用LcmSim+TakeDotLib打造完美LCD显示效果(附12x12汉字配置模板)

本文详细介绍了如何使用LcmSim模拟器与TakeDotLib标准字库工具优化LCD显示效果,包括字体选择、字库生成和实体设备验证。通过12x12汉字与8x16 ASCII的黄金比例配置,帮助开发者解决嵌入式开发中的显示难题,提升用户体验。附赠12x12汉字配置模板,可直接用于项目。

weixin_29205061的博客 115

java学习之路---IO----字节流

javaIO字节流 看看你知道这些吗?

like的专栏 1018

从Simulink到Amesim:一份FMU联合仿真的避坑指南(含UDP通讯完整配置)

本文详细解析了从Simulink到Amesim的FMU联合仿真全流程,重点介绍了UDP通讯配置中的常见陷阱与解决方案。通过实战案例,帮助工程师规避编译器不兼容、步长设置冲突等典型问题,提升复杂系统仿真的效率与准确性。

weixin_34046298的博客 316

java io

JavaIo1.   讲讲IO里面的常见字节流字符流接口实现类方法阻塞。1.Filejava 处理文件的 File,java提供了十分详细的文件处理方法,举了其中几个例子:public staticvoid  creatFile(){    //File主要用于文件和目录的创建、文件的查找和文件的删除等    File f = new File("E:/iotest/create...

张二狗的博客 331

Java基础之-IO中的字节流

下文中所出现的代码可能不规范,譬如文件检查,读者自行体会用法就好。0.什么是字节流简单来说就是面向字节的IO流,也就是提供的read或者write方法,是对byte或者byte[] 操作的。在Java中,有这么几。InputStream 功能 构造器的参数 ByteArrayInputStream 将内存中的缓冲区当做InputStream使用 byte[] Stri

_StriveG的专栏 1247

Io

java中有几种型的流?JDK为每种型的流提供了一些抽象以供继承,为每种型的流提供了一些抽象以供继承,请说出他们分别是哪些?   字节流字符流字节流继承于 InputStream OutputStream,字符流继承于 InputStreamReaderOutputStreamWriter。在 java.io 包中还有许多其他的流,主要是为了提 高性能和使用方便。 讲讲IO...

飞上云端看彩虹 381

Java IO 流:字节流字符流接口实现类阻塞方法

Java 中,IO(Input/Output)流是处理数据输入输出的重要部分。无论是从文件、网络还是其他数据源读取数据,或是将数据写入到这些位置,Java 都提供了丰富的流库来支持这些操作。下面我们将详细介绍 Java IO 流中的字节流字符流常见接口实现类以及阻塞方法

✨ 欢迎来到【Seal ^_^ 的CSDN博客】!✨ 7202

JAVA IO分析一:File字节流字符流、字节字符转换流

因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路;IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题。 一、File 在讲解File之前,我们先认识和了解一下流的概念;流的概念可能比较抽象,可以想象一下水流的样子。 1.流 IO在本质上是单个字节的移动,而流可以说是字节移动的载体和方式,它不停的向目标处移动数据,我们要做...

weixin_38166557的博客 197

Java IO()IO总览

前言: IO对于系统设计来说,是一个很重要的关注点,往往系统运行的瓶颈就在IO设计上,无论是数据库IO,文件IO还是网络IO,都需要进行精致的设计,才能使得系统达到最佳运行状态。对于现代系统并发量、数据量的剧增,IO处理对于系统显得更加重要。研究Java IO对于我们工作有益无害。 Java.io包含了Java阻塞IO的设计。JavaIO主要包含三个部分: 1.流式

键盘上流淌的日子 9152

字节流转化为文件流_JAVA IO分析一:File字节流字符流、字节字符转换流...

因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路;IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题。一、File在讲解File之前,我们先认识和了解一下流的概念;流的概念可能比较抽象,可以想象一下水流的样子。1.流IO在本质上是单个字节的移动,而流可以说是字节移动的载体和方式,它不停的向目标处移动数据,我们要做的就是根据流的方...

weixin_39743357的博客 755

java io体系_JavaIO的体系结构

JavaIO操作主要是指使用Java进行输入,输出操作,Java中所有的操作都存放在Java.io包中,在使用时需要导入此包。在整个Java.io包中最重要的就是5个和一个接口。5个指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了...

weixin_33841242的博客 405

Java IO 流深度解析:BIO、NIO、AIO 原理、示例及对比分析

Java IO 流是用于处理数据输入输出的机制,所有 IO 都基于java.io包和 NIOjava.nio包。流的方向:输入流(读取数据)和输出流(写入数据)处理数据型:字节流(处理二进制数据)和字符流(处理文本数据)操作方式:同步阻塞(BIO)、同步非阻塞(NIO)、异步非阻塞(AIO

2301_76740633的博客 941

java IO

JavaIO 流分为几种?按照流的流向分,可以分为输入流和输出流;按照操作单元划分,可以划分为字节流字符流;按照流的角色划分为节点流和处理流。Java IO 流共涉及 40 多个,这些看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java IO 流的 40 多个都是从如下 4 个抽象中派生出来的。InputStream/Reader: 所有的输入流的基,前者是字节输入流,后者是字符输入流。

qq_58886807的博客 1790

Java基础-3】吃透Java IO字节流字符流、缓冲流

有人曾问fastjson的作者(阿里技术专家高铁):“你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?”高铁答道:“因为热爱本身,就是奖励啊!”这个回答顿时触动了我。想想自己,又何尝不是如此。写作是个痛苦的过程,用心写作就更加煎熬,需字字斟酌,反复删改才有所成。然而,当一篇篇精良文章出自己手而呈现眼前时,那些痛苦煎熬就都那么值得。如果这些博文能有幸得大家阅读和认可,就更加是莫大的鼓舞了。技术人的快乐就是可以这么纯粹和简单。点波关注不迷路,一键三连好运连连!

JustDI0209的博客 225

Java IO 流全面详解:从入门到精通

Java IO 流全面详解:从入门到精通

异常君的博客 1038

java基础—IO流(一)

IO流一直以来都是半懂不懂的,今天来好好复习一下吧。 JAVAIO通过java.io包下的接口来支持,在java.io包下主要包括输入,输出两种IO流,每种输入输出又分为字节流字符流两个大。其中字节流以字节为单位处理输入输出操作,字符流用字符来处理输入输出操作。 在介绍 IO流之前,有一个经常和IO流结合起来使用的File也需要提及一下: File : File也是java...

xqy3177563的博客 298

黑马程序员---IO流(字符流Writer、Reader)

IO流用来处理设备之间的数据传输。  Java对数据的操作是通过流的方式  Java用于操作流的对象都在IO包中  流按操作数据分为两种:字节流字符流 。  流按流向分为:输入流,输出流。   字节流--------通用,处理图片或文字。 字符流(融合了编码表)-----处理文字。   io常用基字节流:InputStream (输入)、OutputSt

程序员 699

Java IO(BIO

一、流的概念和作用 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象。 流的本质:数据传输,根据数据传输特性将流抽象为各种,方便更直观的进行数据操作。 作用:为数据源和目的地建立一个输送通道。 从传输的内容的不同,总体上可以分为两大,即字节流字符流。 二、IO的分 字节流 1、输入流 这里又区分为节点流和处理流,由于处理流都是装饰器流,所以都会迭代在节点流之上工作。 2、输出流 输出流当然与输入流似,节点流可以单独使用,但是处理流需要迭代...

codedot 180

Java IO完全总结

Java IO 江苏 无锡 缪小东        本篇主要讲述IO相关的内容,主要包括:与IO相关的简单的历史背景知识;Java IO的简单分;与IO设计相关的两个模式;同时列举几个简单的例子;分析其中几个实现的源代码;最后给大家一些简单扩展的例子。治学先治史,下面我们先从简单的历史开始吧!   一、      历史背景        “对语言设计人员来说,创建好的

qq_24751859的博客 368

java.io包_Java源码解析——Java IO

一、基础知识:1. Java IO一般包含两个部分:1)java.io包中阻塞IO;2)java.nio包中的非阻塞IO,通常称为New IO。这里只考虑到java.io包中堵塞型IO;2. Java.io包简单地分。2.1 JavaIO主要包含三个部分:1)流式部分――IO的主体部分;2)非流式部分――主要包含一些辅助流式部分的,如:File、RandomAccessFile和Fi...

weixin_28308325的博客 1098

java io

java io流 在总结io流前,也回顾一下File这个,它也是在java.io包里的。 我把它理解为映射一个文件或者文件夹的,就是它提供了各种方法获得这个文件或文件夹的信息和对其进行删改查的操作,但是这些都只是对文件或文件夹,与其里面的内容没关系。 后面的流对象很多构造器都可以传进一个File对象进行初始化,所以在这里简单提一嘴File的初始化,它的其他方法就不在这说了 常见的创建File对象的方法 File a = new File("文件或文件夹路径");//直接初始化,可以是相对路径也可

gforget的博客 160
上一篇: Java IO字节输出流常见类进行分析(三)
下一篇: Java NIO笔记之内存映射文件
在风雨中奔跑
博客等级 码龄14年 64粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值