输入输出(I/O)流。
为了记录所学的知识,就简单的进行描述,后续再补充。
什么是字节流呢?
字节流是基于二进制的万能流,对于任何类型的文件通过字节流都可以对其进行读写。字节流使用了装饰设计模式。
字节流输入流(InputStream)结构图:
字节输出流(OutputStream)结构图:
什么是字符流:
字符流只能够读取文本文件,不能够读取流媒体文件,但理论上读取的效率高于字节流的效率
字符输入流结构图:
字符输出流结构图:
InputStreamReader 是字节流通向字符流的桥梁:它使用指定的charset读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。每次调用InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。
为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:
BufferedReader in = new BufferedReader(neInputStreamReader(System.in));
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。
为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。例如:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
转载于:https://www.cnblogs.com/javacatalina/p/6624265.html
输入输出(I/O)流。相关推荐
- c++语言文件流,C++ IO类、文件输入输出、string流详细讲解
新的C++标准中有三分之二的内容都是描述标准库.接下来重点学习其中几种核心库设施,这些是应该熟练掌握的. 标准库的核心是很多容器类(顺序容器和关联容器等)和一簇泛型算法(该类算法通常在顺序容器一定范围 ...
- Java知多少(66)输入输出(IO)和流的概述
输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息, ...
- 【C++】IO库 : IO类,文件输入输出,string流
前面已经在用的IO库设施 istream:输入流类型,提供输入操作. ostream:输出流类型,提供输出操作 cin:一个istream对象,从标准输入读取数据. cout:一个ostream对象, ...
- java 输出流转输入流_输入输出--Java IO流
O流01 javaIO流概述 ①Java IO即Java 输入输出系统 根据针对数据类型的处理,分为字节流和字符流: 字节流中包含输入流[InputStream]和输出流[OutputStream]两 ...
- Java输入输出(IO)和流的基本概念以及几种方法
Java流的概念 IO流继承关系,如图所示:(了解) 流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动.按照数据的传输方向,流可分为输入流与输出流.Java语言里的流序列中的数据既可 ...
- java中的输入输出流概念_java输入输出--I/O流的概念和划分
理解数据流 数据流(Stream)是一组有顺序的,有起点的,有终点的字节集合,是对输入和输出的总称和抽象. 一般地,数据流分为 输入流(InputStream)和输出流(OutputStream).输 ...
- 文件输入输出和string流
文件流: 头文件fstream定义了三个类型:ifstream读取,ofstream写入,fstream读取和写入,其继承了iostream.当要读写文件时,把文件流对象与文件关联起来,每个文件流都定 ...
- java IO(输入输出) 字节缓冲流
//文件复制 package zhi_jie_liu;import java.io.*;public class Example04 {public static void main(String[] ...
- java 流的概念_举例讲解Java中的Stream流概念
1.基本的输入流和输出流 流是 Java 中最重要的基本概念之一.文件读写.网络收发.进程通信,几乎所有需要输入输出的地方,都要用到流. 流是做什么用的呢?就是做输入输出用的.为什么输入输出要用&qu ...
最新文章
- CoordinatorLayout 的jar包位置
- 栈——用链表实现栈操作
- c语言期末作业自己设计个小程序,帮看一个小程序吧,c语言期末考…求求各位大神了...
- CSS3的弹性盒子flex详解(1)
- 第二阶段 工作总结 05
- RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer) [转]
- [转载] Python利用pandas处理Excel数据的应用
- 安卓11及以上adb命令将冰箱设置为设备管理员
- 计算机表格快捷键,Excel表格快捷键与功能键大全
- 函数论_E.C.Tichmarsh_Page 4 级数一致收敛的魏尔斯特拉斯 M-判别法 的推广
- python阈值计算_基于Python的阈值分割算法实现(二)
- c语言中的inv是什么缩写,INV(inv是什么的缩写)
- 全球家务机器人发展现状及未来趋势
- SQLite源代码分析----------分词器③
- 看机器学习精准预测:谁是iphone的忠实玩家?
- Pytorch中Parameter的打印和修改
- 连锁店管理系统如何助力零售业
- 我也不知道说什么....
- 无线mesh网络(多跳(multi-hop)网络)
- ubuntu 启动遭遇 no such partition grub rescue处理方法
热门文章
- 【重识 HTML + CSS】Photoshop 简单使用
- 怎样更改计算机ip用户名,无法修改系统IP地址
- 企业数据分析,搞定这3个重点事半功倍!
- 小米装android4.4,在VM已安装Android4.4 连接小米手环 网络设置
- php 写二维数组,php二维数组怎么写
- vue设置金额和时间格式(团购倒计时下次一定)
- oracle result_cache_max_size,当设置RESULT_CACHE_MAX_SIZE参数并且重启过database后,Query Result Cache 还是被禁用的。...
- oracle time model,通过案例学调优之--OracleTimeModel(时间模型)
- python编程语言继承_Python 面向对象编程——继承和多态
- cython 安装升级_Anaconda安装pytorch,torchvision和 cython