Javaバッファストリーム符号化&復号化を実現

19659 ワード

Java変換ストリーム:InputStreamReader&OutputStreamWriter
package com.io.review;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import org.junit.Test;

/**
 *    :InputStreamReader & OutputStreamWriter
 */
public class BufferedStreamCopy {

	/*
	 *    1 【  :    ->     】
	 */
	@Test
	public void coding() {
		String str = "        Siri !";
		BufferedWriter bw = null;
		try {
			//  str        ./hello.txt    
			FileOutputStream fos = new FileOutputStream("./hello.txt");
			OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");//           
			bw = new BufferedWriter(osw);

			bw.write(str);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (bw != null) {
				try {
					bw.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}

	/*
	 *    1 【  :     ->    】
	 */
	@Test
	public void decode() {
		BufferedReader br = null;
		try {
			InputStream in = System.in;
			InputStreamReader isr = new InputStreamReader(in);
			br = new BufferedReader(isr);

			String str = null;
			while ((str = br.readLine()) != null) {
				System.out.println("---" + str);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	/*
	 *    2
	 * 
	 *         ,                  。   “e”  “exit” ,    。
	 */
	@Test
	public void decode2() {
		BufferedReader br = null;
		try {
			InputStream in = System.in;
			InputStreamReader sir = new InputStreamReader(in);
			br = new BufferedReader(sir);

			String str = null;
			while ((str = br.readLine()) != null) {
				//           e  exit
				if (str.equalsIgnoreCase("e") || str.equalsIgnoreCase("exit")) {
					System.out.println("    !!");
					break;
				} else {
					//           
					String upperCase = str.toUpperCase();
					System.out.println(upperCase);
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}

	/*
	 *    3
	 */
	@Test
	public void decode3() {
		BufferedReader br = null;
		try {
			FileInputStream fis = new FileInputStream("./hello.txt");
			InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
			br = new BufferedReader(isr);

			String str = null;
			while ((str = br.readLine()) != null) {
				System.out.println(str);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

}