Java之I/O流总结-持续更新

结构图

定义

能被连续读取数据的数据源和能被连续写入数据的接收端就是流

字节流与字符流的区别

字符流 --读到一个或多个字节(中文两个字节,UTF-8码表中3个字节),先查表,再返回字符.只能处理字符数据,纯文本有心考虑使用字符流

字节流 --读到一个字节就返回一个字节,可以处理所有数据类型

体系

基本的功能就是读和写

1.字符流小结:

close() --资源的释放

FileReader除了自己的构造函数外没有特有的方法:

用于读取文本文件的流对象

用于关联文本文件

构造函数FileReader(String fileName) --在读取流对象初始化时,必须制定一个被读取的文件,如果文件不存在则会发生FileNotFoundException异常

Writer中常见的方法:

write() --将一个字符写入到流中

write(char[]) --将一个字符数组写入到流中

flush() --刷新流,将流中的数据刷新到目的地中,流还存在

close() --关闭资源,关闭前会先调用flush()

FileWriter除了自己的构造函数外没有特有的方法:

用于处理文本文件

没有默认的编码表

有临时缓冲

构造函数,在写入流对象初始化时必须要有一个存储数据的目的地

构造函数FileWriter(StringfileName)

在指定位置创建一个文件,如存在则覆盖

FileWriter(String fileName,Boolean append) --当传入类型值为true时,会在指定文件末尾处进行数据的读写

字符流的缓冲区:

缓冲区的出现提高了对流的操作效率

原理:其实就是讲数组进行封装

BufferedWriter --特有方法newLine(),跨平台的换行符

BufferedReader --特有方法readLine(),一次读一行,到行标记之前的字符数据作为字符串返回,读到末尾返回null

缓冲的存在是为了增强流的功能而存在,简历缓冲必须先有流.并将流作为参数传递给缓冲区的构造函数

readLine()方法原理:本质使用read()方法,每一次读到一个字符不进行具体操作,先进行临时存储,读到回车标记时,将临时容器中存储的数据一次性返回

2.字节流小节: InputStream(读) OutputStream(写) 可以操作任何数据类型,字符流使用char[],而字节流使用的是byte[]. 3.转换流小结:

特点:字节流和字符流之间的桥梁,该流对象可以对读取到的字节数据进行指定编码表的编码转换

用处:当字节和字符之间有转换动作的时候,流操作的数据需要进行编码表的指定时

对象:

--InputStreamReader:字节到字符的桥梁

--OutputStreamWriter:字符到字节的桥梁

说明:

--这两个对象是字符流体系中的成员,他们有转换的作用,而本身又是字符流,所以在new的时候需要传入字节流对象

--转换流中的read方法已经融入编码表

--操作文本文件的FileReader直接继承InputStreamReader就可以直接操作文本问价中的字符数据了

--FileReader操作文本文档时,使用默认编码表,如果需要指定编码表,必须使用转换流

构造函数:

--InputStreamReader(InputStream) 默认的编码表GBK

--InputStreamReader(InputStream,String charset) 可以通过charsetr参数指定编码

--OutputStreamWriter(OutputStream) 默认的编码表GBK

--OutputStreamWriter(OutputStream,String charset) 可以通过charsetr参数指定编码

流操作的基本规律

明确数据源(键盘System.in,硬盘,File开头的流对象,内存(数组))和数据目的(控制台System.out,硬盘,File开头的流对象,内存(数组))

--其实是为了明确是输出流还是输入流

明确操作数据是否是纯文本数据

更多内容访问 java进阶_高老四

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • tags:io categories:总结 date: 2017-03-28 22:49:50 不仅仅在JAVA领...
    行径行阅读 2,174评论 0 3
  • 概述: 1、IO流:即Input Output的缩写。 2、特点:1)IO流用来处理设备间的数据传输。2)Java...
    玉圣阅读 1,248评论 0 3
  • 1 IO(二)No19 【 缓冲流:内置了缓冲区,对现有的流对象进行了封装,实现了高效的读写操作并增强了功能 ...
    征程_Journey阅读 710评论 0 1
  • 一、流的概念和作用。 流是一种有顺序的,有起点和终点的字节集合,是对数据传输的总成或抽象。即数据在两设备之间的传输...
    布鲁斯不吐丝阅读 10,030评论 2 95
  • Stream概述 Stream是一个数据流,可以从它读取数据或写入数据。它是连接数据源或数据目的地,例如文件,网络...
    狮_子歌歌阅读 708评论 1 2