오늘이라도

30. IO (Input & Output) ① 본문

취업성공패키지 SW 개발자 교육/Java

30. IO (Input & Output) ①

upcake_ 2020. 3. 30. 21:45
반응형

https://github.com/upcake/Class_Examples

교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. 


▲예제 1. 입력 받기 : InputStream

 - 스트림이란 입출력되는 자료가 흘러가는 통로를 의미하며 단방향성을 가진다.

 - 노드 스트림은 가장 먼저 연결되는 스트림을 뜻한다.

 - InputStream / OutputStream은 바이트 스트림(1 Byte)이며 이미지, 동영상, 음악, ASCII 문자 등 파일을 전송한다.

 

 

▲예제 2. Enter키 설명

 - Enter를 입력하면 CR(Carriage Return)과 LF(Line Feed)가 입력된다.

 - CR은 커서를 줄의 맨 앞으로 이동하는 것을 말하며 아스키코드로 13이다.

 - LF는 커서를 한 줄 아래로 이동하는 것을 말하며 아스키코드로 10이다.

 - A Enter를 입력하면 65 13 10이 입력되기 때문에 Enter를 처리해 줄 필요가 있다.

 

 

▲예제 3. 여러 글자 입력 받기

 - InputStream과 while문을 사용하여 여러 글자를 입력받을 수 있다.

 

 

▲예제 4. 브릿지 스트림, InputStreamReader

 - 브릿지 스트림은 노드 스트림과 연결되는 스트림을 의미하며 단독으로 사용할 수 없다.

 - 문자 스트림(2 Byte)은 텍스트(한글, 특수문자, 한자 등)를 유니코드로 변경해준다.

 - InputStreamReader / OutputStreamWriter는 바이트 입출력 스트림을 문자 스트림으로 변경해준다.

 

 

▲예제 5. 한글 여러 글자 입력받기

 - InputStreamReader과 while을 이용하여 한글 여러 글자를 입력받을 수 있다.

 

 

▲예제 6. 특정 문자 입력으로 종료하기

 - while문의 조건문을 약간 수정하여 특정 문자가 입력되었을 때 프로그램을 종료시킬 수 있다.

 

 

▲예제 7. 버퍼

 - 일반적인 입출력은 여러 글자를 입력한다 하더라도 실제 처리될 때는 한 글자씩 입출력된다.

 - 이 때, 입력된 글자의 개수만큼 접근이 이루어지는데 속도 저하의 원인이 된다.

 - 이러한 비효율성을 개선하기 위해 입력한 글자를 한 번에 처리할 수 있는 버퍼를 지원해준다.

 - 버퍼의 기본 크기는 1024byte이며 BufferedReader 클래스의 readLine() 메서드를 이용한다.

 

 

▲예제 8. 여러 번 입력받고 bye 입력시 종료
▲문제. 버퍼를 이용하여 여러 글자 입력받고 특정 문자 입력시 종료

 

 

▲예제 9. 이미지 파일 입출력

 - FileInputStream / FileOutputStream으로 파일을 복사할 수 있다.

 

 

▲예제 10. 버퍼를 이용한 이미지 파일 입출력

 - 버퍼를 이용하여 더 빠르게 파일을 입출력할 수 있다.

 - write() 메서드를 사용한 다음에는 반드시 flush() 메서드를 사용해서 미처 출력되지 못한 데이터를 출력해주어야 한다.

반응형

'취업성공패키지 SW 개발자 교육 > Java' 카테고리의 다른 글

32. IO ③  (0) 2020.04.01
31. IO ②  (0) 2020.03.31
29. 스레드  (0) 2020.03.30
혼자 공부하는 자바, Ch 06-1 객체 지향 프로그래밍  (0) 2020.03.26
28. ArrayList ②  (0) 2020.03.26