- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java笔记10 io
?
流(stream)
本章内容
Java流式输入/输出原理
Java流类的分类
流入/流出流类
常见的节点流和处理流
文件流
缓冲流
数据流
转换流
Print流
Object流
流的原理:读写数据
真正的文件在硬盘里数据,读数据都是0和1,文件想像成一个桶,文件里取数据,管道就是流,和水流的原理一样。
流就是2根管道,一个向里一个向外,无论向里还是向外都是对我们写的程序来说的
包在外面是处理流,一根不够包2根处理流管道,直接套在节点流或者处理流上面
在java程序中,对于数据的输入/输出操作以流方式进行,J2SDK提供了各种各样的流类,用以获取不通种类的数据,程序中通过标准的方法输入和输出数据
通常我们指的流就是:io包里的类,java.io包中定义了多个流类型(类或抽象类)来事先输入/输出功能:可以从不桶的调度对其进行分类:
按数据流的方向不同可以分为输入流和输出流
按处理数据单位不同可以分为字节流和字符流
按照功能不同可以分为节点流和处理流
(注释):
输入流:程序的角度读数据
输出流:往外写
字节流:0和1
字符流:一个字符一个字符(2个字节)
节点流:管道直接接到数据源上
处理流:套在其他管道上的流,处理流是连接在已存在的流(节点流或处理流)之上,
通过对数据的处理为程序提供更为强大的读写功能。
J2SDK所提供的所有刘类型位于包java.io内都分别继承自以下四种抽象流类型
字节流字符流
输入流InuputStreamReader往里读
输出流OutputStreamWriter字符形式往外写
4根管道:一端接着程序一端接着数据源
InputStream:
继承自InputStream的流都是用于向程序中输入数据,且单位为字节(8bit)
深色:节点流浅色:处理流
InputStream的基本方法:
abstract intread()throws IOException read一下读一个字节
读取一个字节并以正数的形式返回(0-255)如果返回-1已到输入流的末尾
intread(byte b)throws IOException
从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。
返回实际读取的字节数,如果读取前已到输入流的末尾返回-1
(Eg.p2p毁硬盘是硬盘访问的频繁的原因,可以在内存中分配个空间,读一次装满,写:在内存里写好了,一次性写到硬盘里去)
intread(byte b,int off,int len)throws IOException
将输入流中最多len个数据字节读入byte数组。从len的位置开始返回实际读取的字节数,如果读取前以到输入流的末尾返回-1 longskip(long n)throws IOException
跳过和丢弃此输入流中数据的n个字节。
voidclose()throws IOException
关闭此输入流并释放与该流关联的所有系统资源。
OutputStream:
继承自OutputStream的流是用于程序中输出数据,且数据的单位为字节(8bit),此抽象类是表示输出字节流的所有类的超类。
下图中深色为节点流,浅色为处理流
OutputStream的基本方法:
abstract voidwrite(int b)throws IOException
将指定的字节写入此输出流。该字节数据为参数b的低8位
voidclose()throws IOException
关闭此输出流并释放与此流有关的所有系统资源。
voidflush()throws IOException刷新此输出流并强制写出所有缓冲的输出字节。
voidwrite(byte b)throws IOException
将b.length个字节从指定的byte数组写入此输出流。
voidwrite(byte b,int off,int len)throws IOException将指定byte数组中从偏移量off开始的len个字节写入此输出流。
close()之前调用flush()把缓冲区中的剩余数据写入硬盘
Reader
继承自Reader的流都是用于向程序中输入数据,且数据的单位为字符(16bit)
(2个字节2个字节地往外读)
下图中深色为节点流,浅色为处理流
Writer
继承自Writer的流都是用于程序中输出数据,且数据的单位为字符(16bit);下图中深色为节点流,浅色为处理流
abstract voidclose()关闭此流,但要先刷新它。
abstract voidflush()刷新该流的缓冲。
voidwrite(char cbuf)写入字符数组。
abstract voidwrite(char cbuf,int off,int len)写入字符数组
您可能关注的文档
最近下载
- 2022小学语文新课标测试题库及答案.pdf VIP
- 初中生积极心理品质培育策略与实践研究.docx VIP
- 投标服务承诺书(20篇).docx VIP
- 七年级英语第一次月考卷(考试版A4)【测试范围:沪教版五四学制2024 Starter~Unit 1】(上海专用).docx VIP
- 李白按年龄顺序写的诗.docx VIP
- 2025年四川省高考化学试卷真题(含答案解析).docx
- 高频精选:京东快递员ai面试题及答案.doc VIP
- 高频精选:京东快递员ai面试题及答案大全.doc VIP
- 吉林省中药软片炮制规范.pptx VIP
- 名著阅读《湘行散记》七年级语文上册部编版(共9页).docx VIP
文档评论(0)