IOクリア

12738 ワード

IO使用時のコーディングテクニック


1.一番上のIOオブジェクトをnullと宣言します。名前を前の字に略すだけだ。


try-catchドアを開く


try内部でIOオブジェクトを開きます。


4.必要なIOタスクを実行します。通常はwhile文で処理されます。


5.finallyを宣言し、使用するIOをオフにします。


1.空の宣言

		InputStream  is = null;
		OutputStream os = null;
		

2.try-catch文(デフォルトフォーマット)

		try {
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
        
        }

3.try内側から開く

			is = System.in;  * open 대체하는 코드, 콘솔 입력
			os = System.out; * 콘솔 출력

finally宣言後にIOを閉じる

			is.close();
			os.close();
입력시 오류를 클릭해 다시 try 처리 필요
		} finally {
			try {
				is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try { 
				os.close();
			} catch (IOException e) {
				e.printStackTrace();
			}

オペレーティングシステムを強制的に出力する方法

 1. flush 사용 : 중간에 반드시 강제로 데이터를 밀어내야할데 명시적으로 쓰는 문법
 2. close 사용 : 자원 정리할때 사용함으로 필요시 flush 사용 필요
ex) 숫자형 데이터 (1byte)
    		InputStream  is = null;
			OutputStream os = null;
	try {
			is = System.in;  
			os = System.out; 
			
			System.out.println("숫자를 입력해주세요.");
			int read = is.read();
            os.write(read);
            //os.flush();
            
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try { 
				is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				os.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
ex) 문자형 데이터 (2byte)
		InputStreamReader isr = null;
		OutputStreamWriter osw = null;
        
	try {        
        isr = new InputStreamReader(System.in); *문자열 Stream -> reader 처리
		osw = new OutputStreamWriter(System.out);
        
       	osw.append("문자열을 입력해주세요.\n"); *append -> write와 같은 기능
       	osw.flush();
       	char[] temp = new char[1024]; 
	   	int size = isr.read(temp);
        
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		try {
			isr.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}