java 常用流_java的常用I/O流~~

java中的I/O流操作是一个重点,但是关于流的类非常之多,看的人头晕眼花,在加上什么时候输入,什么时候输出,完了,彻底崩溃了。

其实当遇到比较复杂的问题的时候,最重要的是理清思路,像剥茧抽丝一样,进行归纳总结就会发现事情并不像想象的那么复杂

从整体来看,流无非就是输入与输出

打开API文档

输入有两个类:InputStream

Reader

共同点:任何自InputStream或Reader派生而来的类都含有名为read()的基本方法

区别:InputStream是读取字节流, Reader是读取字符流

InputStream的read()方法是用于读取单个字节或字节数组

Reader的read()方法是用于读取单个字符或字符数组

输出有两个类:OutputStream

Writer

共同点:任何自OutputStream或Writer派生而来的类都含有名为write()的基本方法

区别:OutputStream是写字节流, Writer是写字符流

OutputStream的write()方法是用于读取单个字节或字节数组

Writer的write()方法是用于读取单个字符或字符数组

另一个让人困惑的就是,什么是读?什么是写?

简单的说

读就是从内存中把数据读出来

写就是把数据写进内存中去

这么简单,但为什么“流”类库让你迷惑呢?

因为创建单一的结果流,却需要创建多个对象。

下面举几个常用的I/O流的例子

文本文件的复制

方法一

FileReader fr =newFileReader("a.txt");//要复制的文本文件

BufferedReader br =newBufferedReader(fr);//用读字符流缓冲区套住

FileWriter fw =newFileWriter("b.txt");//副本文件

BufferedWriter bw =newBufferedWriter(fw);//用写字符流缓冲区套住

while(true) {

String temp = br.readLine();

if(temp ==null) {

break;

}

bw.write(temp);

bw.newLine();

}

bw.close();

fw.close();

br.close();

fr.close();

方法二

BufferedReader br =newBufferedReader(

newInputStreamReader(newFileInputStream("a.txt")));

PrintWriter pw =newPrintWriter(newFileOutputStream("b.txt"));

while(true) {

String temp = br.readLine();

if(temp ==null) {

break;

}

pw.println(temp);

}

pw.close();

br.close();

方法三InputStream in =newFileInputStream("a.txt");

OutputStream out =newFileOutputStream("b.txt");

byte[] bytes =newbyte[1024];

while(true) {

intlen = in.read(bytes);

if(len == -1){

break;

}

out.write(bytes,0, len);

}

这种方法不但可以复制文本文件还可以复制分文本的其他文件

因为非文本文件是通过字节流传输的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值