IO 정리

IO 사용할때의 코딩 테크닉

1. 가장 윗단에 사용할 IO객체를 null로 선언한다. 이름을 앞글자만 줄여서 선언한다.

2. try-catch문을 연다.

3. try 안쪽에서 IO객체를 open한다.

4. 필요한 IO 작업을 수행한다. 보통 while문으로 처리한다.

5. finally를 선언하고 사용한 IO을 닫는다.

1. null선언

		InputStream  is = null;
		OutputStream os = null;
		

2. try-catch문 (기본 형식)

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

3. try 안쪽에서 open

			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();
			}

os를 강제로 출력하는 방법 2가지

 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();
		}
	}
       

좋은 웹페이지 즐겨찾기