Java Input, Output
- 어떤 대상으로 부터 데이터를 메모리로 읽어 들이는 것을 입력이라고 한다.
- 프로그래밍 언어의 관점에서 메모리라는 것은 변수 or 필드 or 객체 로 생각하면 편하다.
- 데이터는 2진수로 이루어져 있지만 2진수 8개의 묶음인 1byte 단위로 생각하면 편하다.
- 1byte 는 총 256 가지의 값을 표현할수 있다.
- 1byte 를 10진수로 환산하면 0~255 사이의 숫자중에 하나이다.
- 입력과 출력을 통해서 이동하는 데이터는 byte(byte알갱이) 하나 하나가 이동한다고 생각하면 된다.
InputStream 예제)
위 코드는 console 창에 영문자, 대소문자, 숫자, 특수문자를 입력하면
입력한 값에 대응되는 int 형의 code를 반환해주는 코드이다.
InputStream의 read() 메소드를 이용하여 값을 읽어오는 기능을 활용한 예이다.
read() 메소드를 사용하기 위해선 예외처리를 해줘야 되기때문에 try, catch 를 사용하였다.
a입력 결과
code : 97
입력한 문자는 a 를 반환 해준다.
InputStreamReader 예제)
위의 코드는 console 창에 한글을 포함한 영문자, 대소문자, 숫자, 특수문자를 입력하면
입력한 값에 대응되는 int 형의 code를 반환해주는 코드이다.
InputStreamReader의 read() 메소드를 이용하여 값을 읽어오는 기능을 활용한 예이다.
"가" 입력 결과
code : 234
입력한 문자를 반환할때는 char으로 반환이 불가하여 문자가 깨진다.
BufferadReader 예제)
위의 코드는 BufferedReader 객체의 readLine() 메소드를 이용해서 console창에 문자열을 입력하면
문자열을 읽을 수 있는 코드를 작성하였다.
InputStreamReader의 read() 메소드를 사용했을때는 문자가 깨졌지만
BufferedReader 객체의 readLine() 메소드를 이용하여 출력했을땐 문자가 깨지지 않고 출력되었다.
OutputStream 예제)
OutputStream 객체의 write() 메소드는 int 형의 code를 입력하면 code에 맞는 문자를 출력해주는 메소드이다.
OutputStream 객체는 1byte 처리만 가능하다.
os.write(97) = a
os.write(105) = i
os.write(114) = r
write() 메소드를 사용하기 위해선 예외처리를 해줘야 되기때문에 try, catch 를 사용하였다.
콘솔창에 air이 출력된다.
OutputStreamWriter 예제)
OutputStreamWriter 객체의 write() 메소드는 int 형의 code를 입력하면 code에 맞는 문자를 출력해주는 메소드이다.
OutputStreamWriter 객체는 2byte 처리가 가능하다. (한글형식 가능)
os.write(48148) = 바
os.write(48372) = 보
os.write(44032) = 가
콘솔창에 "바보가아니야"가 출력된다.
BufferedWriter 예제)
BufferedWriter 객체의 write() 메소드는 String형의 Date를 입력해도 출력해주는 메소드이다.
BufferedWriter 객체는 개행기호를 읽지 않기때문에 따로 개행을 사용하고싶으면 따로 입력 해야한다.
\n = 개행 기호
newLine() : 개행 기호
콘솔창 출력 결과
'Java' 카테고리의 다른 글
[Eclipse] Java JDBC, SELECT 예제 (0) | 2023.05.15 |
---|---|
[Eclipse] Java FileWriter 예제 (0) | 2023.05.12 |
[Eclipse] Java JFrame (0) | 2023.05.11 |
[Eclipse] Java File 클래스 (0) | 2023.05.10 |
[Eclipse] Java Thread(스레드) 일시정지(sleep) (0) | 2023.05.09 |