黑马程序员 学习日记(二)

本文介绍了Java中用于数据输入输出的IO流技术,包括字节流和字符流的基础概念及常用类,如FileInputStream、FileOutputStream、BufferedReader和BufferedWriter等,并通过实例展示了如何使用这些类实现文件复制。
---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------


浅谈IO流

IO流是Java控制数据输入输出的重要手段,分为字节流和字符流。

字节流是按数据最基本的单位--字节,控制数据的输入输出,可以应对字符文本、影音媒体、图片等常规文件的操作,包括创建、复制、修改、删除等。

字符流是为了处理不同编码之间文本的识别而单独打造出来的流。用字符流处理文本得心应手、手到擒来!


常用的IO类

字节流

FileInputStream

FileOutputStream


BufferedInputStream

BufferedOutputStream


字符流

FileReader

FileWriter


BufferedReader

BufferedWriter


每一种流对应了四个类,这几个类都有什么作用呢?实际敲代码测试就是最好的老师!

public static void copyFile() throws IOException
	{
		FileInputStream fis = new FileInputStream("D:\\test.jpg") ;
		FileOutputStream fos = new FileOutputStream("D:\\test_copy.jpg") ;

		BufferedInputStream bufis = new BufferedInputStream(fis) ;
		BufferedOutputStream bufos = new BufferedOutputStream(fos) ;

		int b = 0 ;

		while((b=bufis.read()) != -1)
		{
			bufos.write(b) ;
		}

		bufis.close();
		bufos.close();
	}

先在D盘根目录下建立一个test.jpg,再执行这段代码试试看吧!!

FileInputStream顾名思义,就是与目标文件建立流关系,此时已经可以进行读取操作,但是这时候的流是一个字节一个字节的去读,就犹如人要一滴一滴去喝杯里的水。

为了提高效率建立一个缓冲区,字节放到缓冲区以后一起读取。

<span style="color:#006600;">BufferedInputStream bufis = new BufferedInputStream(fis) ;这句的作用就是把流交道缓冲区手里。</span>

与Input对应的Output 都是一样的,只不过是功能变为输出

利用reand和write两个方法 通过循环就可以完成文件的复制

举一反三,字符流的操作也都是大同小异,几乎没有差别,从命名上(read和write)反而比字节流更容易理解。

今天学到了很重要的字节流和字符流,一个软件少不了对数据的操作,日后我会更多努力的发现和学习IO流的技术

欢迎大家互相交流互相学习,以上有不对的地方欢迎指正。

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值