如何使用IO流

1:字节流(掌握)
	参照IO体系图

2:转换流(理解)
	只有你在使用字节流中需要使用字符流的特殊方法时,才需要使用转换流。
	在编码的使用,需要使用转换流。

3:流的使用规律
操作数据的时候要明确是字节流还是字符流?
	如果用记事本打开并能看懂的数据就是字符流:
		读取数据
			Reader
				是否高效:
					否:|--FileReader
					是:|--BufferedReader
		写入数据
			Writer
				是否高效:
					否:|--FileWriter
					是:|--BufferedWriter
	否则,就是字节流:
		读取数据
			InputStream
				是否高效:
					否:|--FileInputStream
					是:|--BufferedInputStream
		写入数据
			OutputStream
				是否高效:
					否:|--FileOutputStream
					是:|--BufferedOutputStream
	如果你不知道,用字节流。

4:复制数据的规律(作业 字符数据)
	A:文本文件--文本文件
		数据源:
			文本文件 -- Reader -- FileReader -- BufferedReader
		目的地:
			文本文件 -- Writer -- FileWriter -- BufferedWriter

		代码:
			BufferedReader br = new BufferedReader(new FileReader("a.txt"));
			BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));

			String line = null;
			while((line=br.readLine())!=null)
			{
				bw.write(line);
				bw.newLine();
				bw.flush();
			}
			
			bw.close();
			br.close();

	B:文本文件--控制台输出(System.out)
		BufferedReader br = new BufferedReader(new FileReader("a.txt"));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		String line = null;
		while((line=br.readLine())!=null)
		{
			bw.write(line)
			bw.newLine();
			bw.flush();
		}

		bw.close();
		br.close();
	C:键盘录入(System.in)--文本文件
		数据源:
			键盘录入 -- System.in -- InputStream -- InputStreamReader -- BufferedReader
		目的地:
			文本文件 -- Writer -- FileWriter -- BufferedWriter

		代码:
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));

			String line = null;
			while((line=br.readLine())!=null)
			{
				if("over".equals(line))
				{
					break;
				}
				bw.write(line);
				bw.newLine();
				bw.flush();
			}

			bw.close();
			br.close();
			

	D:键盘录入(System.in)--控制台输出(System.out)
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
				
			String line = null;
			while((line=br.readLine())!=null)
			{
				if("over".equals(line))
				{
					break;
				}

				bw.write(line);
				bw.newLine();
				bw.flush();
			}

			bw.close();
			br.close();

	按照如下步骤:
		(1)数据源和目的地
			数据源:
				读取数据
					InputStream
					Reader
			目的地:
				写入数据
					OutputStream
					Writer
		(2)判断数据源和目的地的数据是否是文本文件:
			数据源:
				是:Reader
				不是:InputStream
			目的地:
				是:Writer
				不是:OutputStream
		(3)考虑设备
			数据源:
				文件(File)
					FileReader
				键盘录入(System.in)
					InputStream -- System.in
			目的地:
				文件(File)
					FileWriter
				控制台输出(System.out)
					OutputStream -- System.out

				可能需要使用转换流。
		(4)使用高效:
			使用:就用带Buffered的流
			不使用:不用带Buffered的流

5:编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,
并将原来文件的扩展名从.java改为.jad(理解)
	回来练习一遍。

	如果有兴趣,可以自己先实现一下多级目录的复制。
					


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值