每周总结15 - IO

每周总结15 - IO

一、IO的概念

IO,即是input and output

输入和输出的缩写。

put,放,Input就往里面放,输入,Output就往外面放,输出。

输入,往内存memory中读入硬盘disk上的数据。这叫做 读read。

输出,从memory中,往disk上写数据,这叫做 写wirte.

二、数据流

java程序中,对于数据的输入输出操作以流(“steram")的方式进行。

所谓“流”,有点抽象的概念,可以理解为数据的水流,一个传输数据的通道,可以传输相应类型的数据,从而完成数据的传输,这个通道被实现为一个具体的对象。

java.io包下提供了各种“流”的类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。

流的分类classify:

1.java中的I/O流按照数据流的流向不同

分为输入和输出流。

2.按操作数据单位不同

分为字节流和字符流。

字节流一次读取一个字节byte = 8bit;

字节流是最基本的,全能流。

而字符流是自动识别语言,一次读一个字符。

是中文(占2byte)就读2byte,是英文字母就读一个byte.

(不知道是否支持所有各国语言?)

字符流只能读纯文本文件,.txt。

(字节流在操作时不会用到缓冲区,直接操作了文件,而字符流使用了缓冲区,通过缓冲区再操作文件。)(?待己考证吧)

3.按流的功能不同

分为底层的节点流和上层的处理流两类。

节点流直接从数据源或者目的地读写数据。(直接的)

而处理流不直接连接数据源或者目的地,

而是连接在已经存在的流(节点流或者处理流上)

通过对数据的处理为程序提供更为强大的读写功能。

其中,起始抽象父类源头。(祖宗)

所有的输入流抽象父类 InputStream,Reader.

所有的输出流抽象父类OutputStream,Writer.

字节流 InputStream,OutputStream.

字符流Reader,Writer.

凡是Stream结尾的,就是字节流。初始的全能的字节流Stream。

凡是Reader,Writer结尾的,就是字符流。读写纯文本的字符流,Reader,Writer。

分类的子类流名称 == 用途种类特征or对象 + 继承的抽象父类名。

前者表示 用途特征or对象 , 后者 可以看出是 字节or字符,输入or输出流。

例如FileInputStream.

可以知道是访问文件File的(文件流),继承InputStream(字节,输入流)

FileWriter,可知是 File(文件流),继承Writer(字符,写出,输出流)

同理Reader(字符,读入,输入流)

OutputStream(字节,输出流)

大致上,前者表示 用途特征or对象 , 后者 可以看出是 字节or字符,输入or输出流。

分类字节输入流字节输出流字符输入流字符输出流
抽象父类InputStreamOutputStreamReaderWriter
File文件流FileInputStreamFileOutputStreamFileReaderFileWriter
Array数组流ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter
piped管道流PipedInoutStreamPipedOutputSreamPipedReaderPipedWriter
String字符串流StringReaderStringWriter
Buffered缓冲流BufferedInputStreamBufferedOutputStreamBufferReaderBufferWriter
转换流InputStreamReaderOutputStreamWriter
Object对象流ObjectInputStreamObjectOutputStream
装饰流(过滤流)FilterInputStreamFilterOutputStreamFilterReaderFilterWriter
print打印流PrintStreamPrintWriter
Data数据过滤流DataInputStreamDataOutputStream

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ontXiDwG-1654585496178)(C:\Users\XGX\Pictures\Saved Pictures\QQ图片20220601223255.jpg)]

例外,如ByteArrayInputStream,CharArrayReader,还加了前缀,

区别就是前者用字节Byte数组来读取数据,后者利用字符Char数组(2byte)来读取数据(应该还有其他的区别,不过这比较明显了吧。)

array 数组,队列,阵列。

pipe 管,管道,管子。

buffer 缓冲器,缓冲物;储存器,缓冲区。

filter 滤器,过滤器,过滤光、声、波等器。v 过滤。

filter流不知道用来干什么。

string 一串;细绳;袋子;字符串;v 悬挂;系;串; 等意思。

String字符串流只有字符流,。。。一个字符串就不止字节了么是这样吗?

转换流是字符流,用于将字节流转换为字符流。包装一下。

print打印,打印流都是输出流,

先搞线程了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值