์๋
! ์ค๋ ์ฐ๋ฆฌ๋ Java PrintStream ํด๋์ค์ ๊ทธ๊ฒ์ด ํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ ๊ฒ์
๋๋ค. ์ค์ ๋ก PrintStream ํด๋์ค ์ ๋ ๊ฐ์ง ๋ฉ์๋์ ์ด๋ฏธ ์ต์ํฉ๋๋ค . ๊ทธ๊ฒ๋ค์ print() ์ println() ์ธ๋ฐ, ์ฌ๋ฌ๋ถ์ ์๋ง๋ ๋งค์ผ ์ฌ์ฉํ ๊ฒ์
๋๋ค :) System.out ๋ณ์๋ PrintStream ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ System.out.println() ์ ํธ์ถํ ๋ ์ด ํด๋์ค์ ๋ฉ์๋ ์ค ํ๋๋ฅผ ํธ์ถํ๊ฒ ๋ฉ๋๋ค .โฏ PrintStream ํด๋์ค ์ ์ผ๋ฐ์ ์ธ ๋ชฉ์ ์ ์ผ๋ถ ์คํธ๋ฆผ์ ์ ๋ณด๋ฅผ ๋ณด๋ด๋ ๊ฒ์
๋๋ค.โฏ์ด ํด๋์ค์๋ ์ฌ๋ฌ ์์ฑ์๊ฐ ์์ต๋๋ค. ๋ค์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ช ๊ฐ์ง์
๋๋ค.
- PrintStream(์ถ๋ ฅ์คํธ๋ฆผ ์ถ๋ ฅ์คํธ๋ฆผ)
- PrintStream(ํ์ผ ์ถ๋ ฅ ํ์ผ)์ด FileNotFoundException์ ๋ฐ์์ํต๋๋ค.
- PrintStream(String outputFileName)์ด FileNotFoundException์ ๋ฐ์์ํต๋๋ค.
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
public class Main {
public static void main(String arr[]) throws FileNotFoundException
{
PrintStream filePrintStream = new PrintStream(new File("C:\\Users\\Username\\Desktop\\test.txt"));
filePrintStream.println(222);
filePrintStream.println("Hello world");
filePrintStream.println(false);
}
}
์ด ์ฝ๋๋ ๋ฐํ ํ๋ฉด์ test.txt ํ์ผ์ ๋ง๋ค๊ณ (์์ง ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ) ์ซ์, ๋ฌธ์์ด ๋ฐ ๋ถ์ธ์ ์์ฐจ์ ์ผ๋ก ์๋๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ ํ์ ํ์ผ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
222
Hello world!
false
์์์ ๋งํ๋ฏ์ด File ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ ํ์๊ฐ ์์ต๋๋ค. ๋จ์ํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์์ฑ์์ ์ ๋ฌํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค.
import java.io.FileNotFoundException;
import java.io.PrintStream;
public class Main {
public static void main(String arr[]) throws FileNotFoundException
{
PrintStream filePrintStream = new PrintStream("C:\\Users\\Username\\Desktop\\test.txt");
filePrintStream.println(222);
filePrintStream.println("Hello world");
filePrintStream.println(false);
}
}
์ด ์ฝ๋๋ ์ด์ ์ฝ๋์ ๋์ผํฉ๋๋ค. ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์๋ ๋ ๋ค๋ฅธ ํฅ๋ฏธ๋ก์ด ๋ฐฉ๋ฒ์ ํ์ ๋ฌธ์์ด์ ๊ธฐ๋ฐ์ผ๋ก ์ถ๋ ฅ์ ์์ฑํ๋ printf() ์
๋๋ค. "ํ์ ๋ฌธ์์ด"์ด๋ ๋ฌด์์
๋๊น? ์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
import java.io.IOException;
import java.io.PrintStream;
public class Main {
public static void main(String[] args) throws IOException {
PrintStream printStream = new PrintStream("C:\\Users\\Steve\\Desktop\\test.txt");
printStream.println("Hello!");
printStream.println("I'm a robot!");
printStream.printf("My name is %s. I am %d!", "Amigo", 18);
printStream.close();
}
}
์ฌ๊ธฐ์์ ๋ฌธ์์ด์ ๋ก๋ด์ ์ด๋ฆ๊ณผ ๋์ด๋ฅผ ๋ช
์์ ์ผ๋ก ์ง์ ํ๋ ๋์ ์ด ์ ๋ณด์ ๋ํ ์๋ฆฌ ํ์์๋ฅผ %s ๋ฐ %d ๋ก ํ์ํฉ๋๋ค . ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋์ฒดํ ๋ฐ์ดํฐ๋ฅผ ์ธ์๋ก ์ ๋ฌํฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ๋ฌธ์์ด " Amigo "์ ์ซ์ 18์
๋๋ค. ๋ค๋ฅธ ์๋ฆฌ ํ์์ %b ๋ฅผ ๋ง๋ค๊ณ ๋ค๋ฅธ ์ธ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ ํ์ํ๊ฐ์?โฏ๋ฌด์๋ณด๋ค๋ ๋ ํฐ ์ ์ฐ์ฑ์ ์ํด. ํ๋ก๊ทธ๋จ์์ ํ์ ๋ฉ์์ง๋ฅผ ์์ฃผ ํ์ํ๋๋ก ์๊ตฌํ๋ ๊ฒฝ์ฐ ๊ฐ ์ ๋ก๋ด์ ํ์ํ ํ
์คํธ๋ฅผ ์๋์ผ๋ก ์
๋ ฅํด์ผ ํฉ๋๋ค. ๋ชจ๋ ์ฌ๋์ด ์ด๋ฆ๊ณผ ๋์ด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ด ํ
์คํธ๋ฅผ ์์๋ก ๋ง๋ค ์๋ ์์ต๋๋ค! ๊ทธ๋ฌ๋์ด ์๋ก์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ธ์ฌ๋ง์ ์์๋ก ๋ถ๋ฆฌํ๊ณ ํ์ํ ๊ฒฝ์ฐ printf() ๋ฉ์๋์ ์ ๋ฌ๋ ์ธ์๋ฅผ ๊ฐ๋จํ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
import java.io.IOException;
import java.io.PrintStream;
public class Main {
private static final String GREETINGS_MESSAGE = "My name is %s. I am %d!";
public static void main(String[] args) throws IOException {
PrintStream printStream = new PrintStream("C:\\Users\\Steve\\Desktop\\test.txt");
printStream.println("Hello!");
printStream.println("We are robots!");
printStream.printf(GREETINGS_MESSAGE, "Amigo", 18);
printStream.printf(GREETINGS_MESSAGE, "R2-D2", 35);
printStream.printf(GREETINGS_MESSAGE, "C-3PO", 35);
printStream.close();
}
}
System.in ๊ต์ฒด
์ด ๋จ์์์๋ "์์คํ ๊ณผ ์ธ์ฐ๊ณ " ์์คํ ์ถ๋ ฅ์ ์ํ๋ ์์น๋ก ๋ฆฌ๋๋ ์ ํ๊ธฐ ์ํด System.in ๋ณ์๋ฅผ ๋์ฒดํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. System.in์ด ๋ฌด์์ธ์ง ์์ด๋ฒ๋ฆด ์ ์์ง๋ง CodeGym ํ์์ ์ด ๊ตฌ์กฐ๋ฅผ ์ ๋ ์์ง ๋ชปํ ๊ฒ์ ๋๋ค.
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.in ( System.out โฏ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก )์ System ํด๋์ค ์ ์ ์ ๋ณ์์
๋๋ค . ๊ทธ๋ฌ๋ System.out ๊ณผ ๋ฌ๋ฆฌ ๋ค๋ฅธ ํด๋์ค, ์ฆ InputStream ์ ์ฐธ์กฐํฉ๋๋ค . ๊ธฐ๋ณธ์ ์ผ๋ก System.in์ ์์คํ
์ฅ์น(ํค๋ณด๋)์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์คํธ๋ฆผ์
๋๋ค. ๊ทธ๋ฌ๋ System.out ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํค๋ณด๋๋ฅผ ๋ฐ์ดํฐ ์์ค๋ก ๋์ฒดํ ์ ์์ต๋๋ค. ์ํ๋ ๊ณณ ์ด๋์์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค! ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
String greetings = "Hi! My name is Amigo!\nI'm learning Java on the CodeGym website.\nOne day I will become a cool programmer!\n";
byte[] bytes = greetings.getBytes();
InputStream inputStream = new ByteArrayInputStream(bytes);
System.setIn(inputStream);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = reader.readLine())!= null) {
System.out.println(str);
}
}
}
๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ฌด์์ ํ์ต๋๊น? System.in์ ์ผ๋ฐ์ ์ผ๋ก ํค๋ณด๋์ ๋ฐ์ธ๋ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ํค๋ณด๋์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ถ์ง ์์ต๋๋ค. ์ผ๋ฐ ๋ฌธ์์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋๋ก ํฉ์๋ค! ๋ฌธ์์ด์ ๋ง๋ค๊ณ ๋ฐ์ดํธ ๋ฐฐ์ด๋ก ๊ฐ์ ธ์์ต๋๋ค. ๋ฐ์ดํธ๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์
๋๊น? ๋ฌธ์ ๋ InputStream ์ด ์ถ์ ํด๋์ค์ด๋ฏ๋ก ์ธ์คํด์ค๋ฅผ ์ง์ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ ์์ ์ค ํ๋๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ByteArrayInputStream ์ ์ ํํ ์ ์์ต๋๋ค . ๊ฐ๋จํ๊ณ ์ด๋ฆ๋ง์ผ๋ก๋ ์๋ ๋ฐฉ์์ ์ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์์ค๋ ๋ฐ์ดํธ ๋ฐฐ์ด์
๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋ง๋ค๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์คํธ๋ฆผ ์ ์์ฑ์์๊ฒ ์ ๋ฌํฉ๋๋ค . ์ด์ ๋ชจ๋ ๊ฒ์ด ์ค๋น๋์์ต๋๋ค! ์ด์ System.setIn()์ ์ฌ์ฉํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.in ๋ณ์ ์ ๊ฐ์ ๋ช
์์ ์ผ๋ก ์ค์ ํ๋ ๋ฉ์๋์
๋๋ค . out ์ด ์์ผ๋ฉด ๋ณ์์ ๊ฐ์ ์ง์ ์ค์ ํ๋ ๊ฒ๋ ๋ถ๊ฐ๋ฅํ๋ค๋ ์ ์ ๊ธฐ์ตํ ๊ฒ์
๋๋ค. setOut() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ์ต๋๋ค. InputStream์ System.in ๋ณ์ ์ ํ ๋นํ ํ ๋ชฉ์ ์ ๋ฌ์ฑํ๋์ง ํ์ธํ๋ ค๊ณ ํฉ๋๋ค. ์ฐ๋ฆฌ์ ์ค๋ ์น๊ตฌ์ธ BufferedReader๊ฐ ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ฅผ ๋์์ค๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด ์ฝ๋๋ IntelliJ IDEA์์ ์ฝ์์ ์ฐ ๋ค์ ํค๋ณด๋์์ ์
๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ต๋๋ค.
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = reader.readLine())!= null) {
System.out.println(str);
}
๊ทธ๋ฌ๋ ์ด์ ์คํํ๋ฉด ๋ฌธ์์ด์ด ์ฝ์์ ํ์๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ํค๋ณด๋์์ ์ฝ์ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์์ค๋ฅผ ๊ต์ฒดํ์ต๋๋ค. ๋ ์ด์ ํค๋ณด๋๊ฐ ์๋๋ผ ์ฐ๋ฆฌ์ ํ์
๋๋ค! ๊ฐ๋จํฉ๋๋ค :) ์ค๋ ์์
์์ ์ฐ๋ฆฌ๋ ์๋ก์ด ํด๋์ค๋ฅผ ์๊ฒ ๋์๊ณ I/O ์์
์ ์ํ ์๊ณ ์๋ก์ด ํต์ ํ๊ตฌํ์ต๋๋ค. ์ด์ ์ฝ์ค๋ก ๋์๊ฐ์ ๋ช ๊ฐ์ง ์์
์ ์๋ฃํ ์๊ฐ์
๋๋ค :) ๋ค์ ๋ ์จ์์ ๋ต๊ฒ ์ต๋๋ค!
๋ ์ฝ์ด๋ณด๊ธฐ: |
---|
GO TO FULL VERSION