黑马程序员 IO流学习笔记一

----------android培训java培训、java学习型技术博客、期待与您交流!----------

JavaI/O

IO的发展

I/O是机器获取或交换信息的主要渠道。

JDK1.4开始引入了NIO(以块为单位传输数据,添加异步通信)。

JDK1.7又添加了新特性NIO.2为该语言增加了异步通道功能和新的文件系统API

IO操作类分为四组

  1. 基于字节操作的 I/O接口:InputStreamOutputStream

  2. 基于字符操作的 I/O接口:WriterReader

  3. 基于磁盘操作的 I/O接口:File

  4. 基于网络操作的 I/O接口:Socket

前两组根据数据格式,后两组根据传输方式。我们关注的就是如何提高它的运行效率了,而数据格式和传输方式是影响效率最关键的因素了。

基于字节操作的I/O接口

一个是操作数据的方式是可以组合使用的,如:

OutputStreamout = new BufferedOutputStream(new ObjectOutputStream(newFileOutputStream("fileName"));

流最终会写到磁盘或者网络中(其实从上面的类图中我们发现,写网络实际上也是写文件,只不过写网络还有一步需要处理就是底层操作系统再将数据传送到其它地方而不是本地磁盘)。

例:请利用FileInputStream和FileOutputStream类的相关方法实现文件拷贝。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ByteFileCopy {

	public static void main(String[] args) throws IOException {
		new ByteFileCopy("ByteFileCopy.java", "ByteFileCopy2.txt");
		copyByteFile();
	}
	private static String resFile;//文件名
	private static String disFile;//拷贝后的文件名
	ByteFileCopy(String resFile,String disFile){
		ByteFileCopy.resFile = resFile;
		ByteFileCopy.disFile = disFile;
	}
	public static  void copyByteFile() throws IOException{
		FileInputStream fileIn = new FileInputStream(resFile);//创建文件读取流对象
		FileOutputStream fileOut = new FileOutputStream(disFile);创建文件写入流对象
		byte[] bufIn = new byte[1024];//字节缓冲区
		int len = 0;
		while ((len = fileIn.read(bufIn))!=-1) {
			fileOut.write(bufIn,0,len);//写入数据
		}
		fileIn.close();//关闭读取流
		fileOut.close();//关闭写入流
	}
}



总结:IO操作类分为四组:1 InputStreamOutputStream;2 WriterReader;3 File;4 Socket。


----------android培训java培训、java学习型技术博客、期待与您交流!----------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值