欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

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

来源: javaer 分享于  点击 147 次 点评:262

黑马程序员 IO流学习笔记一,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学习型技术博客、期待与您交流!----------

 

相关文章

    暂无相关文章
相关栏目:

用户点评