JAVA.io包,输入输出流整理

java.io包中有很多输入输出流,特别是在节点流、处理流管道套接的时候,初学者容易弄错。最近看了马士兵老师的视频,为了梳理一下思维,把整理结果分享给大家。


流(Stream):JDK中通过流获取各种类型的数据。可以把流看成是一根管道,通过管道连接程序或数据源,从而获取我们想要的数据。

流分类:

补充:还有FilterInputStream/FileterOutPutStream , FilterReader/FilterWriter也是抽象类


什么是输入流,输出流?

针对我们的程序而言,往外部写数据,就是使用输出流; 从外部读取数据,就是使用输入流。

什么是字符流,字节流?

处理数据单位为字符,使用字符流;处理数据单位为字节,使用字节流。 为什么要这么划分呢?因为1个中文汉字为1个字符=2个字节,如果中文汉字按照字节处理,就存在读取或写入半个字符,显示为乱码。

什么是节点流,处理流?

按照前面我们所说,流就相当于建立在数据源和程序之间的管道,节点流就是一根直接连接程序和数据源的管道;处理流就是套接在节点流上面的管道。


所以需要注意的是处理流,一定是在套接在节点流上的,不能直接连接程序和数据源。 例如:BufferedReader brr = new BufferedReader(System.in);  这个是错误的,因为BufferedReader是一个处理流。


那IO包中常用的字节流,处理流有哪些呢?(大家查看API文档,通过查看类继承与Reader/Writer或InputStream/OutputStream可以区分出是字符流还是字节流)

下面列举一些常用的类

节点流

(对文件进行数据处理都要使用File相关类)

public class FileReader extends InputStreamReader 字符流
public class FileWriter extends OutputStreamWriter 字符流
public class FileInputStream extends InputStream 字节流
public class FileOutputStream extends OutputStream 字节流
public class ByteArrayInputStream extends InputStream 字节流
public class ByteArrayOutputStream extends OutputStream 字节流

处理流
public class InputStreamReader extends Reader  字符流
public class OutputStreamWriter extends Writer 字符流
public class BufferedInputStream extends FilterInputStream 字节流
public class BufferedOutputStream extends FilterOutputStream 字节流
public class BufferedReader extends Reader 字符流
public class BufferedWriter extends Writer 字符流
public class DataInputStream extends FilterInputStream implements DataInput 
public class DataOutputStream extends FilterOutputStream implements DataOutput
public class ObjectInputStream extends InputStream implements ObjectInput, ObjectStreamConstants
public class ObjectInputStream extends InputStream implements ObjectInput, ObjectStreamConstants










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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值