博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字节流与字符流的一些个人看法
阅读量:7077 次
发布时间:2019-06-28

本文共 923 字,大约阅读时间需要 3 分钟。

一、字节与字符

IO操作,首先要提到字节与字符、字符串。

名称 数据类型 含义
字节 byte 是硬盘中文件存储的单位,也是网络传输信息的单位。
字符 char 我们常用的字母、数字、字和符号。
字符串 String 字符的集合,char[]的封装类型

笼统来讲,字节用来与文件打交道,而字符用来和人打交道

二、字节流与字符流

流,我的理解流就是用来传输水的水管,数据则是水管里面的水。

流有很多种分类方式,在这里只讨论按数据类型的分类,即字节流(OutputStream、InputStream)与字符流(Reader、Writer)。

字面意义来讲,字节流用来传输字节,字符流用来传输字符。

往往字节流和字符流是同时存在的,例如:我们在java中会看到FileOutputStream和FileWriter

两者实现的功能相同,都是向文件中写入数据,那么它们同时存在的意义是什么?

字节流,用于文件等纯数据打交道,比如保存一张图片(难不成你还指望用字符流来读懂图片的含义,骚年)

字符流,多用于文本打交道,比如保存一段话(字节流也可实现该功能,但字符流更方便)

下面表格是两者的区别与联系

  字节流 字符流
缓冲区 无缓冲区,直接作用于文件 有缓冲区,作用于缓冲区
处理数据 byte char
Java中对应的类 InputStream、OutputStream Reader、Writer
桥梁 InputStreamReader 是字节流通向字符流的桥梁
OutputStreamWriter是字符流通向字节流的桥梁

注:这些仅仅是我个人看法,是对是错并不一定,因为IO这块,我接触的并不多

就比如下图,我就非常不能理解这种做法,犹如脱裤子放屁

在我看来,这里应直接用FileWriter,而不是FileOutputStream

就算用FileOutputStream,也没必要用OutputStreamWriter,直接line.getBytes()然后用FileOutputStream写入就得了

更不用提PrintWriter了....

 

转载于:https://www.cnblogs.com/xjyh/p/4517727.html

你可能感兴趣的文章
Shadow Mapping With PCF
查看>>
Cracking the Coding Interview-ch11 | System Design and Memory Limits
查看>>
ionic ng-repeat 循环传值
查看>>
63. 搜索旋转排序数组 II
查看>>
Java学生管理系统
查看>>
IOS UISearchDisplayController 点击搜索出现黑条问题解决方案
查看>>
如何在应用图标上显示未读消息
查看>>
P2P下载为什么人越多越快呢??
查看>>
iOS--警告收录及科学快速的消除方法
查看>>
Export-XLSX PowerShell generate real Excel XLSX files without Excel and COM
查看>>
Oracle 修改表列属性
查看>>
facl权限(getfacl/setfacl)
查看>>
Homework Exercises 1
查看>>
bzoj 3670 [Noi2014]动物园
查看>>
bzoj 1009 [HNOI2008]GT考试——kmp+矩阵优化dp
查看>>
使用PHP输出中文JSON字符串
查看>>
用Curl测试POST
查看>>
Rails: No such file or directory - getcwd
查看>>
算法18-----判断是否存在符合条件的元素【list】
查看>>
运行TestCase时,提示:Element is not currently visible and so may not be interacted with
查看>>