java I/O流

本文详细解析了Java I/O流的主要分类,包括字节流与字符流,并以数组流为例演示了流的基本操作流程。同时,介绍了如何在实际应用中使用流进行数据读写,并探讨了如何通过过滤流提升流操作的效率。

在javaI/O流主要分类

InputStream和OutputStream表示字节输入流和字节输出流

Reader和Writer分别表示字符输入流和字符输出流

今天主要了解字节流(InputStream和OutputStream)

字节输入流InputStream,其主要的直接子类有FileInputStream(文件输入流),ByteArrayInputStream(字节数组输入流),FilterInputStream(过滤流)

ObjectInputStream(对象输入流),PipedInputStream(管道输入流),SequenceInputStream(序列输入流)

其中过滤流又主要包括DataInputStream(数据输入流),BufferdInputStream(缓冲输入流),LineNumberInputStream(行号输入流),

PushbackInputStream(回推输入流)

InputStream中主要方法有:



















字节输出流OutputStream,其主要的直接子类有FileoutputStream(文件输出流),ByteArrayOutputStream(字节数组输出流),

FilterOutputStream(过滤输出流),ObjectIOutputStream(对象输出流),PipedOutputStream(管道输出流)

其中过滤流又主要包括DataOutputStream(数据输出流),BufferdOutputStream(缓冲输出流),PrintStream(打印流)

OutputStream中主要方法有:












使用流一般分为三步,下面我将先以数组流为例:

第一步 :建立流

1->建立输入流

String str = "asfasdfassa";

byte[] strBuf = str.getBytes();

ByteArrayInputStream bais = new ByteArrayInputStream(strBuf);

2->建立输出流

String s = "adsfaewtqwe";

byte[] buf = s.getBytes();

ByteArrayOutputStream baos = new ByteArrayOutputStream(strBuf);

第二步:将数据读入或写入流中

1->读入输入流

int data = bais.read();//只能从输入流中读取下一个字节

2->写入输出流中

baos.write(buf);

第三步:操作流

1->操作输入流

while(data != -1){

System.out.println(Character.toUpperCase((char)data)+" ");

data = bais.read();

}

这里如果在while里面写(data=bais.read()) != -1可以避免多余代码

2->操作输出流

System.out.println(baos.toString());


注意事项:在建立文件输出流时,有时候需要在文件末尾追加数据,那么建立流时要使用new FileOutputStream(filname,true);既设置第二个参数为true


我们也可以为基本的流操作增加过滤流操作,比如为文件流添加过滤流为流添加更多优势

FileInputStream fins = new FileInputStream(filename);

BufferedInputStream bis = new BufferedInputStream(fins);//添加缓冲流

DataInputStream dis = new DataInputStream(bis);//添加数据流

至于printStream可查看api或知其用法


字符流的分析和字节流类似,只是要知道一点,字节流通过XXXStreamReader()和XXXStreamWrite()可以转换为字符流,使用方法跟过滤流的使用方法类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值