转换流的使用

转换流:
    InputStreamReader:字节到字符的桥梁,解码。
    OutputStreamWriter:字符到字节的桥梁,编码



import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class SystemInput 
{
//读取键盘录入的字母,并将所有字母转换成大写字母输出在控制台上
	public static void main(String[] args) 
	{
		// 
		//SystemInDemo1();
		//ReadFileOut();
		ReadFileOut1();
	}
	private static void ReadFileOut1() {
		// 将键盘录入的数据储存到一个文件中去
		BufferedReader br = null;
		br = new BufferedReader(new InputStreamReader(System.in));
		//创建输出文件路径
		BufferedWriter bw = null;
		try {
			bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\测试文件夹\\SystemInDemos.txt")));
			String len = null;
			while((len = br.readLine())!=null)
			{
				bw.write(len);
				bw.newLine();
				bw.flush();
			}
		} catch (FileNotFoundException  e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally
		{
			try 
			{
				bw.close();
			} catch (IOException e) 
			{
				e.printStackTrace();
			}
			try 
			{
				br.close();
			} catch (IOException e) 
			{
				e.printStackTrace();
			}
		}
		
	}

	private static void ReadFileOut() 
	{
	// 使用转换流将键盘上的数据输出在控制台上
	
		InputStream in = System.in;
		InputStreamReader isr = new InputStreamReader(in);
		
		//字符流
		BufferedReader br = new BufferedReader(isr);
		
		//字节流输出数据
		OutputStream out = System.out;
		
		OutputStreamWriter osw = new OutputStreamWriter(out);
		
		BufferedWriter bw = new BufferedWriter(osw);
		String len = null;
		try {
			while((len = br.readLine())!=null)
			{
				bw.write(len);
				bw.newLine();
				bw.flush();
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
}

	private static void SystemInDemo1() {
		// 使用转换流读取一个键盘录入的数据并打印在控制台上
		BufferedReader bis = null;
		BufferedWriter bos = null;

		bis = new BufferedReader(new InputStreamReader(System.in));
		
		bos = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String len = null;
		try {
			while((len=bis.readLine())!=null)
			{
				String s = len.toUpperCase();
				bos.write(s);
				bos.newLine();
				bos.flush();
				
			}
		} catch (IOException e) 
		{
			e.printStackTrace();
		}
		finally
		{
			try 
			{
				bis.close();
			} catch (IOException e) 
			{
				e.printStackTrace();
			}
			try 
			{
				bos.close();
			} catch (IOException e) 
			{
				e.printStackTrace();
			}
		}
		
	}

}