Java工程师必知词汇:字符流

简介: 对于服务端或者是客户端实质上传递的就是一种数据流的处理形式,而所谓的数据流指的就是字节数据。

对于服务端或者是客户端实质上传递的就是一种数据流的处理形式,而所谓的数据流指的就是字节数据。而对于这种流的处理形式在java.io包中提供有两类支持:

  • 字节处理流:OutputStream()(输入字节流)、InputStream()(输入字节流);
  • 字符处理流:Writer(输出字符流)、Reader(输入字符流);

所有的流操作都应采用如下统一的步骤进行,下面以文件处理的流程为例:

  • 如果进行文件读写操作,则一定要通过File类找到一个文件路径;
  • 通过字节流或字符流的子类为父类对象进行实例化;
  • 利用字节流或字符流中的方法实现数据的输入与输出操作;
  • 流的操作属于资源操作,资源操作必须进行关闭处理;

字符输出流:Writer
java.io包在JDK1.1时推出了字符输出流:Writer,这个类的定义如下:

public abstract class Writer extends Object implements Appendable, Closeable, Flushable{}

在Writer类中提供了几个输出的操作方法:

  • 输出字符数组:public void write(char[] cbuf) throws IOException;
  • 输出字符串:public void write(String str) throws IOException;
  • 追加内容:public Writer append(CharSequence csq) throws IOException;

Writer是字符流,字符处理的优势在于中文数据处理。
字符输入流:Reader
Reader是实现字符输入流的一种类型,其本身属于一个抽象类,这个类的定义如下:

public abstract class Reader extends Object implements Readable, Closeable{}

public interface Readable{}

Reader类中并没有像Writer类一样提供有整个字符串的输入处理操作,因此只能够利用字符数组来实现接收:

  • 读取单个字符:public int read() throws IOException;
  • 读取一组数据:public int read(char[] cbuf) throws IOException;
  • 读取数组部分数据:public abstract int read(char[] cbuf, int off, int len) throws IOException;

|参考资料|

[1] 阿里云大学Java视频课程

相关文章
|
3月前
|
监控 网络协议 Java
《Java工程师成神之路》阿里技术专家之作,囊括Java所有知识点!
很多Java程序员一直希望找到一份完整的学习路径,但是市面上很多书都是专注某一个领域的,没有一份完整的大图,以至于很多程序员很迷茫,不知道自己到底应该从哪里开始学,或者不知道自己学习些什么。
|
3月前
|
存储 Java 数据安全/隐私保护
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
|
2月前
|
Java
电子书阅读分享《Java工程师成神之路》
电子书阅读分享《Java工程师成神之路》
50 1
|
4月前
|
设计模式 架构师 Java
2024到来!一到五年Java工程师想跳槽,大环境不好,怎么破?
会不会因为裁员潮,市场上工作机会比往年跳槽季更少,同时求职者因为失业或裁员潮带来的恐慌心理,很多人在找工作时更怕错过机会而不做过多思考和选择就入职。这样的形势下跳槽或者求职时,该如何判断和做出选择?
|
1月前
|
消息中间件 Dubbo Java
互联网 Java 工程师1000道面试题(485页)
互联网 Java 工程师1000道面试题(485页)
28 0
|
1月前
|
人工智能 监控 Java
招个Java工程师,却发现了一个宝藏平台
招个Java工程师,却发现了一个宝藏平台
21 0
招个Java工程师,却发现了一个宝藏平台
|
2月前
|
Java
电子书阅读分享《Java工程师成神之路》
电子书阅读分享《Java工程师成神之路》
69 2
|
2月前
|
Java 索引
JAVA零基础小白免费学习教程day16-字节流&字符流(三)
JAVA零基础小白免费学习教程day16-字节流&字符流
44 0
|
2月前
|
存储 Java Windows
JAVA零基础小白免费学习教程day16-字节流&字符流(二)
JAVA零基础小白免费学习教程day16-字节流&字符流
79 0
|
2月前
|
存储 移动开发 Java
JAVA零基础小白免费学习教程day16-字节流&字符流(一)
JAVA零基础小白免费学习教程day16-字节流&字符流
51 0