IO๋? Input & Output
Java IO๋ ๊ฐ์ฒด์ด๋ค.
Decorator ํจํด์ผ๋ก ๋ง๋ค์ด์ก๋ค.
ConcreteComponent - ์ฃผ์ธ๊ณต
Decorator - ์ฅ์ , component์ญํ ์ ๊ฐ์ง ์ ์๋ค.
์ฃผ์ธ๊ณต๊ณผ ์ฅ์์ ๊ตฌ๋ถํ ์ ์์ด์ผ ํ๋ค.
InputStream, OutputStream, Reader, Writer: ์ถ์ํด๋์ค์ฌ์ new๋ก ๊ฐ์ฒด ์์ฑ ๋ถ๊ฐ๋ฅํ๋ฉฐ, Component์ ํด๋น
์ฃผ์ธ๊ณต์ ์ด๋ค ๋์์๊ฒ์ ์ฝ์ด๋ค์ผ์ง, ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๊ณ , 1byte or byte[] , 1char or char[]๋จ์๋ก ์ฝ๊ณ ์ฐ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ค.
์ฅ์์ InputStream, OutputStream, Reader, Write๋ฅผ ์์ฑ์์์ ๋ฐ์๋ค์ด๊ณ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฝ๊ณ ์ฐ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ค.
Java IO์ ํน์ํ ๊ฐ์ฒด
System.in: ํ์ค์ ๋ ฅ
System.out: ํ์ค ์ถ๋ ฅ
Sysstem.err: ํ์ค ์๋ฌ ์ถ๋ ฅ
Java IO์ ํด๋์ค ์์๋
Stream์ผ๋ก ๋๋๋ ํด๋์ค | byte ๋จ์ ์ ์ถ๋ ฅ ํด๋์ค |
InputStream์ผ๋ก ๋๋๋ ํด๋์ค | byte ๋จ์๋ก ์ ๋ ฅ ๋ฐ๋ ํด๋์ค |
OutputStream์ผ๋ก ๋๋๋ ํด๋์ค | byte ๋จ์๋ก ์ถ๋ ฅ ํ๋ ํด๋์ค |
Reader ๋๋๋ ํด๋์ค | ๋ฌธ์ ๋จ์๋ก ์ ๋ ฅ ๋ฐ๋ ํด๋์ค |
Writer ๋๋๋ ํด๋์ค | ๋ฌธ์ ๋จ์๋ก ์ถ๋ ฅ ํ๋ ํด๋์ค |
File๋ก ์์ํ ๊ฒฝ์ฐ | File๋ก๋ถํฐ ์ ๋ ฅ์ด๋ ์ถ๋ ฅ์ ํ๋ ํด๋์ค |
ByteArray๋ก ์์ํ ๊ฒฝ์ฐ | ์
๋ ฅ ํด๋์ค์ ๊ฒฝ์ฐ byte ๋ฐฐ์ด๋ก๋ถํฐ ์ฝ์ด๋ค์ด๊ณ , ์ถ๋ ฅ ํด๋์ค์ ๊ฒฝ์ฐ ํด๋์ค ๋ด๋ถ์ ์๋ฃ๊ตฌ์กฐ์ ์ถ๋ ฅ ํ ํ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ byte ๋ฐฐ์ด๋ก ๋ฐํํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ค. |
Java IO ํด๋์ค๋ ์์ฑ์๊ฐ ์ค์ํ๋ค.
InputStream, OutputStream, Reader, Writer๋ฅผ ์์ ๋ฐ์ผ๋ฉด ์๋ฐ IO ๊ฐ์ฒด(์ฃผ์ธ๊ณต or ์ฅ์) ์ด๊ณ , ์๋๋ฉด ์ฝ๊ณ ์ฐ๋ ํด๋์ค๊ฐ ์๋๋ค.
์์ฑ์์ InputStream, OutputStream, Reader, Writer๋ฅผ ๋ฐ์ผ๋ฉด ์ฅ์, ์๋๋ฉด ์ฃผ์ธ๊ณต
Java IO๋ฅผ ์ ๋ค๋ฃจ๋ ค๋ฉด, API๋ฅผ ์ ์ฝ์ด๋ด์ผ ํ๋ค.
ํค๋ณด๋๋ก ํ์ค์ฉ ์ ๋ ฅ๋ฐ์์ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.Reader;
public class KeyboardIOExam {
public static void main(String[] args) throws Exception{
//ํค๋ณด๋๋ก๋ถํฐ ํ์ค์ฉ ์
๋ ฅ๋ฐ๊ณ , ํ์ค์ฉ ํ๋ฉด์ ์ถ๋ ฅ
// ํค๋ณด๋: System.in (InputStream ์ฃผ์ธ๊ณต)
//ํ๋ฉด์ ์ถ๋ ฅ: System.out (PrintStream ์ฃผ์ธ๊ณต)
//ํค๋ณด๋๋ก ์
๋ ฅ๋ฐ๋๋ค๋๊ฒ = ๋ฌธ์๋ฅผ ์
๋ ฅ๋ฐ๋ ๊ฒ: char ๋จ์ ์
์ถ๋ ฅ
//char ๋จ์ ์
์ถ๋ ฅ ํด๋์ค๋ Reader, Writer
//ํ์ค ์ฝ๊ธฐ: BufferReader๋ผ๋ ํด๋์ค๋ readLine ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ค.
// ๋์ด์ ์ฝ์ด๋ค์ผ๊ฒ์ด ์์ผ๋ฉด(EOF) null์ ๋ฐํ
// ์ฅ์!
//ํ์ค ์ฐ๊ธฐ: PrintStream, PrintWriter
//BufferedReader ์์ฑ์์ ์ฌ ์ ์๋ ๊ฒ์ ์๊ฐํด๋ณด์
//BufferedReader x
//CharReader x - ๋ฌธ์๋ก๋ถํฐ ์ฝ์ด๋ค์ธ๋ค.
//FilterReader x - ์ฅ์. Reader๋ฅผ ๋ ๋ฃ์ด์ค์ผ ํ๋ค.
//InputStreamReader(InputStream in) - ์ฅ์
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = br.readLine()) != null) {//ํ์ค ์
๋ ฅ๋ฐ๋๋ค. ์ข
๋ฃ command D
System.out.println("์ฝ์ด๋ค์ธ๊ฐ:"+line);
}
}
}
'๐ผ๋ฐฑ์ค๋ > Java ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฃผ์๋ฌธ, ์์ธ์ฒ๋ฆฌ, enum (0) | 2023.08.23 |
---|---|
์ ๋๋ฆญ(Generic)๊ณผ ์ปฌ๋ ์ ํ๋ ์์ํฌ(Collection Framework) (0) | 2023.08.22 |
๋ฐฐ์ด 2/2 (0) | 2023.08.22 |
๋ฐฐ์ด 1/2 (0) | 2023.08.22 |
๊ฐ์ฒด ์งํฅ ๋ฌธ๋ฒ 3/3 (0) | 2023.08.21 |