java面试题 流_Java面试题之IO流是做什么的?流的分类?常用的流有哪些?

本文介绍了Java中的IO流,包括输入输出流的概念,根据数据流向和格式的分类,以及字节流和字符流的常见类型。讨论了节点流与处理流的区别,并列举了如FileInputStream、BufferedReader等具体流的使用。
摘要由CSDN通过智能技术生成

hello,大家好,又到了今天的java知识分享时刻,每一次的努力都是在为美好的明天做积累,每天花一点点时间,让知识更牢固一些!好了,请看下题:

47315528c64f582ffc61ffc654fba278.png

IO流是做什么的?流的分类?常用的流有哪些?

IO流指的是输入输出流,用来处理设备上的数据,这里的设备指硬盘、内存、键盘录入、网络传输等。

1) 根据数据的流向来分:

输出流:是用来写数据的,是由程序(内存)--->外界设备。

输入流:是用来读数据的,是由外界设备--->程序(内存)。

2) 根据流数据的格式来分:

字节流:处理声音或者图片等二进制的数据的流,比如 InputStream;

字符流:处理文本数据(如txt文件)的流,比如 InputStreamReader ;

3) 根据流数据的包装过程来分:

节点流:又称为低级流,特点是:数据源明确,真实负责读写数据的流。

处理流:又称为高级流,特点是:不能单独存在(没意义),用来处理其他流,所有高级流都封装了某些特定功能的读写操作,目的是简化我们的读写操作具体的流。

e5cb8270d017647d53682edd8288bf01.png

1) 字节流:

InputStream 与 OutputStream;

InputStream 是所有字节输入流的父类,其定义了基础的读取方法;

OutputStream 是所有字节输出流的父类,其定义了基础的写出方法包含:文件流:FileOutputStream 是文件的字节输出流,我们使用该流可以以字节为单位将数据写入文件(默认覆盖模式,第二个参数设施为 true 可改变为追加模式)。FileInputStream 是文件的字节输入流,我们使用该流可以以字节为单位读取文件内容。

缓冲流:BufferedOutputStream 缓冲字节输出流,需使用flush方法将缓存的字节写出或者在关闭流时一次性写出。BufferedInputStream 是缓冲字节输入流。

对象流:ObjectOutputStream 是用来对对象进行序列化的输出流。ObjectInputStream 是用来对对象进行反序列化的输入流。

2) 字符流:Reader 和 Writer;

Reader 是所有字符输入流的父类。

Writer 是所有字符输出流的父类。

字符流是以字符 (char) 为单位读写数据的。一次处理一个 unicode。字符流都是高级流,其底层都是依靠字节流进行读写数据的。

包含:转换流:InputStreamReader:字符输入流,使用该流可以设置字符集 OutputStreamWriter:字符输出流,使用该流可以设置字符集字符缓冲流:PrintWriter 具有自动行刷新的缓冲该字符输出流,需第二个参数设置为 true。

BufferedReader 是缓冲字符输入流;

注::PrintWriter 写出字符串时我们通常不使用 Writer 提供的 write( ) 相关方法,而是使用重载的 print 和println 方法。

BufferedReader 读取字符串时可以使用 readLine( ) 连续读取一行字符串,直到读取到换行符为止,返回的字符串中不包含该换行符,未读到返回 null。

8f0d52b2e3c7bf8b5f81399ee2c5aa19.png

大家感觉这道题怎么样呢?觉得不错的话还请点个赞哦,明天会有更多精彩知识分享,敬请关注呢,可以在评论区留言哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值