Reader And Writer

2024-05-06 11:18
文章标签 reader writer

本文主要是介绍Reader And Writer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接 作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com)

Java IO的Reader和Writer除了基于字符之外,其他方面都与InputStream和OutputStream非常类似。他们被用于读写文本。InputStream和OutputStream是基于字节的,Reader和Writer是基于字符的。

Reader

Reader类是Java IO中所有Reader的基类。子类包括BufferedReader,PushbackReader,InputStreamReader,StringReader和其他Reader。

这是一个简单的Java IO Reader的例子:

01 Reader reader = new FileReader("c:\\data\\myfile.txt");
02  
03 int data = reader.read();
04  
05 while(data != -1){
06  
07     char dataChar = (char) data;
08  
09     data = reader.read();
10  
11 }

请注意,InputStream的read()方法返回一个字节,意味着这个返回值的范围在0到255之间(当达到流末尾时,返回-1),Reader的read()方法返回一个字符,意味着这个返回值的范围在0到65535之间(当达到流末尾时,同样返回-1)。这并不意味着Reade只会从数据源中一次读取2个字节,Reader会根据文本的编码,一次读取一个或者多个字节。

你通常会使用Reader的子类,而不会直接使用Reader。Reader的子类包括InputStreamReader,CharArrayReader,FileReader等等。可以查看Java IO概述浏览完整的Reader表格。

整合Reader与InputStream

一个Reader可以和一个InputStream相结合。如果你有一个InputStream输入流,并且想从其中读取字符,可以把这个InputStream包装到InputStreamReader中。把InputStream传递到InputStreamReader的构造函数中:

1 Reader reader = new InputStreamReader(inputStream);

在构造函数中可以指定解码方式。更多内容请参阅InputStreamReader。

Writer

Writer类是Java IO中所有Writer的基类。子类包括BufferedWriter和PrintWriter等等。这是一个Java IO Writer的例子:

1 Writer writer = new FileWriter("c:\\data\\file-output.txt"); 
2  
3 writer.write("Hello World Writer"); 
4  
5 writer.close();

同样,你最好使用Writer的子类,不需要直接使用Writer,因为子类的实现更加明确,更能表现你的意图。常用子类包括OutputStreamWriter,CharArrayWriter,FileWriter等。Writer的write(int c)方法,会将传入参数的低16位写入到Writer中,忽略高16位的数据。

整合Writer和OutputStream

与Reader和InputStream类似,一个Writer可以和一个OutputStream相结合。把OutputStream包装到OutputStreamWriter中,所有写入到OutputStreamWriter的字符都将会传递给OutputStream。这是一个OutputStreamWriter的例子:

Writer writer = new OutputStreamWriter(outputStream);

整合Reader和Writer

和字节流一样,Reader和Writer可以相互结合实现更多更有趣的IO,工作原理和把Reader与InputStream或者Writer与OutputStream相结合类似。举个栗子,可以通过将Reader包装到BufferedReader、Writer包装到BufferedWriter中实现缓冲。以下是例子:

查看源代码
打印 帮助
1 Reader reader = new BufferedReader(new FileReader(...));
2  
3 Writer writer = new BufferedWriter(new FileWriter(...));

原创文章,转载请注明: 转载自并发编程网 – ifeve.com

这篇关于Reader And Writer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964195

相关文章

xml reader

// TODO Auto-generated method stub

DataX的如何使用hdfsreader/writer

说明:DataX的hdfs读取或写入一般用的比较少,国内用datax通常都是用它完成数据仓库之间的数据迁移,很少以文件的形式直接迁移,对于hdfs来讲,datax提供了hdfsreader和hdfswriter,本篇以文件的方式导入或导出hive数据为例,展示datax的hdfsreader/writer怎么用,因为整体的技术大环境下使得datax提供的hdfsreader/writer也是以结构

android java BufferedWriter writer 如果每次都在 原有的数据上追加数据怎么实现?就是先读取,然后再写入

在Android Java中,如果你想要使用`BufferedWriter`在原有数据的基础上追加数据,你需要确保在打开文件时使用`FileWriter`的构造函数,并传入一个布尔值参数`true`,表示以追加模式打开文件。以下是实现这一功能的步骤: 1. **创建`BufferedWriter`实例**:    使用`FileWriter`的构造函数,并传入追加模式的标志。 2. **读取现

Adobe Acrobat Reader的高级功能详解

​ 大家好,我是程序员小羊! 前言: Adobe Acrobat Reader是广泛使用的PDF查看器,其不仅可以用于查看和打印PDF文件,还具有一些高级功能,可以提升用户的PDF文档处理效率。以下是对Adobe Acrobat Reader的一些高级功能的详细介绍。 一、PDF注释和标注工具 Adobe Acrobat Reader提供了丰富的注释和标注工具,使用户可以对

【FlinkX】两个issue分析:reader和writer的通道数不一致+获取JobId

文章目录 issue详情reader和writer的通道数不一致获取JobId 代码分析#issue145配置说明源码分析: #issue148 最近准备再花点时间优化一下之前的FlinkX版本,特地去看了一下项目的issues区域,发现两个自己比较关注的issue。 issue详情 reader和writer的通道数不一致 异构数据源reader和writer设置不

45-Javareader和Writer文本IO操作的解析

Java中的Reader和Writer是处理字符流的抽象类,它们是所有字符流读写器的基类。以下是使用Reader和Writer进行文本IO操作的简单示例。 import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.W

在VBA中调用Adobe Acrobat或Reader的命令行工具,实现PDF自动打印 (‾◡◝)

在VBA(Visual Basic for Applications)中自动打印PDF文件通常不直接支持,因为VBA本身是针对Microsoft Office应用程序(如Excel、Word和PowerPoint等)的编程语言,并不直接处理PDF文件。但是,你可以通过调用Adobe Acrobat或Reader的命令行工具间接实现自动打印PDF文件的功能。 一、操作步骤 首

软件介绍—Fluent Reader (RSS阅读器)

软件介绍—Fluent Reader (RSS阅读器) 01 RSS介绍 RSS可翻译为简易信息聚合(也叫聚合内容)是一种基于XML的标准,在互联网上被广泛采用的内容包装和投递协议。简单来讲,就是可以“订阅”一些网站新发布的内容。部分网站有RSS选项,点击即可复制链接。若没有网站订阅选项,可使用一些工具进行转化,详见后期介绍。 例如少数派官网,以及很多期刊的网站等 都有这个标志,点开之后都是

Foxit Reader -福昕阅读器

福昕阅读器是一款功能强大的PDF阅读器,它具有以下特点: 界面简洁:福昕阅读器采用了简洁直观的界面设计,用户可以轻松浏览PDF文件,缩放和旋转页面,同时还可通过缩略图导航快速翻页。 快速加载:福昕阅读器具有快速加载PDF文件的能力,即使是大型的文件也能迅速打开并进行浏览。 注释和标记:福昕阅读器内置了强大的注释和标记工具,使用户可以在PDF文件中添加批注、高亮、划线、下划线等,方便用户标记

writer.h

在研究writer类之前,我们需要看下WriterBase,因为class Writer : public WriterBase 此处为语雀内容卡片,点击链接查看:https://www.yuque.com/u28554159/onrdis/vkq1w4hg2ahl1q6f writer.h里面定义了一个Transmit类的share_ptr,实现了write方法,讲消息通过tansmitt