Io流的操作规律

流的操作规律:
         因为流的类太多,开发时不知道用哪个.
四个明确:

一、明确源和目的
    源:Reader、InputStream.
    目的:Writer、OutputStream.
    
二、明确是否是文本文件
    是:Reader
      Writer
    否:InputStream
      OutputStream
    
三、明确设备
源设备:
    硬盘:File
    键盘:System.in
    内存:数组
    网络:Socket流
目的设备:
    硬盘:File
    键盘:System.out
    内存:数组
    网络:Socket流    
四、明确是否需要增加额外功能
    1、提高效率(缓冲区)
    2、转换
    
四个例子:
需求1:复制一个文本文件
    1、明确源和目的
        源:Reader、InputStream.
        目的:Writer、OutputStream.
    2、明确是否是文本文件
        是:
        源:Reader、目的:Writer
    3、明确设备
        File
    4、是否需要增加额外功能
        需要
        
需求:2:读取键盘录入信息并写入到一个文件中
    1、明确源和目的:
        源:Reader、InputStream
        目的:Writer、OutputStream
    2、明确是否是文本
        源:Reader
        目的:Writer
    3、明确设备:
        源:键盘、System.in
        目的:文件File
    4、是否需要增加额外功能
        是,转换,和缓冲区
        
需求3:将一个文本文件数据显示在控制台上    
     1、明确源和目的:
        源:Reader、InputStream
        目的:Writer、OutputStream
    2、明确是否是文本
        源:Reader
        目的:Writer
    3、明确设备
        源:文件,File
        目的:控制台,System.out
    4、是否要增加额外功能
        转换,和缓冲区
        
需求4:读取键盘录入数据,显示在控制台上
    1、明确源和目的:
        源:Reader、InputStream
        目的:Writer、OutputStream
    2、明确是否是文本
        源:Reader
        目的:Writer
    3、明确设备
        源:键盘,System.in
        目的:控制台,System.out    
    4,增加额外功能
        转换,和缓冲区

        
  代码演示:      
        
  

package cn.itcast.iotest.demo;

import java.io.BufferedReader;
import java.io.BufferedWriter;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class IoTestDemo {

	public static void main(String[] args) throws IOException {
//		iotest_1();
//		iotest_2();
//		iotest_3();
		iotest_4();
		
	}
	
	
//	需求4:读取键盘录入数据,显示在控制台上
	public static void iotest_4() throws IOException {
		
		BufferedReader bur=new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter buw=new BufferedWriter(new OutputStreamWriter(System.out));
		String len=null;
		while((len=bur.readLine())!=null) {
			if(len.equals("over"))
				break;
			buw.write(len);
			buw.newLine();
			buw.flush();
		}
		bur.close();
		buw.close();
		
	}

	
	//需求3:将一个文本文件数据显示在控制台上	
	public static void iotest_3() throws IOException {
		
		/*FileReader fr=new FileReader("demo_1.txt");
		OutputStream os=System.out;
		OutputStreamWriter osw=new OutputStreamWriter(os);//转换
		BufferedReader bur=new BufferedReader(fr);//缓冲区
		BufferedWriter buw=new BufferedWriter(osw);//缓冲区
*/		
		BufferedReader bur=new BufferedReader(new FileReader("demo_2.txt"));
		BufferedWriter buw=new BufferedWriter(new OutputStreamWriter(System.out));
		String len=null;
		while((len=bur.readLine())!=null) {
			buw.write(len);
			buw.newLine();
			buw.flush();
		}
		bur.close();
		buw.close();		
	}
	
	//需求2:读取键盘录入信息并写入到一个文件中
	public static void iotest_2() throws IOException {
		
	/*	InputStream in=System.in;
		FileWriter fw=new FileWriter("demo_3.txt");
		InputStreamReader is=new InputStreamReader(in);//转换
		BufferedReader bur=new BufferedReader(is);//缓冲区
		BufferedWriter buw=new BufferedWriter(fw);//缓冲区
*/		
		
		BufferedReader bur=new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter buw=new BufferedWriter(new FileWriter("demo_3.txt"));
		String len=null;
		while((len=bur.readLine())!=null) {
			if("over".equals(len))
				break;	
			buw.write(len);
			buw.newLine();
			buw.flush();
		}
		bur.close();
		buw.close();
	}
	
	
	//需求1:复制一个文本文件
	public static void iotest_1() throws IOException {
/*		FileReader fr=new FileReader("demo_1.txt");
		FileWriter fw=new FileWriter("demo_2.txt");
		BufferedReader bur=new BufferedReader(fr);
		BufferedWriter buw=new BufferedWriter(fw);*/
		
		BufferedReader bur=new BufferedReader(new FileReader("demo_1.txt"));
		BufferedWriter buw=new BufferedWriter(new FileWriter("demo_2.txt"));
		String len=null;
		while((len=bur.readLine())!=null) {
			buw.write(len);
			buw.newLine();
			buw.flush();
		}
		bur.close();
		buw.close();
	}
}

     
      

猜你喜欢

转载自blog.csdn.net/TDOA1024/article/details/82387327