Java/패스트캠퍼스
표준 입출력 스트림
hs_developer
2022. 6. 14. 21:24
System 클래스의 표준 입출력 멤버
public class System
{
public static PrintStream out;
public static InputStream in;
public static PrintStream err;
}
System.out | 표준 출력(모니터) 스트림 |
System.out.println("출력 메세지"); | |
System.in | 표준 입력(키보드) 스트림 |
int d = System.in.read() -> 한 바이트 읽기 | |
System.err | 표준 에러 출력(모니터) 스트림 |
System.err.println("에러 메세지"); |
System.in 예제
1.
import java.io.IOException;
public class SystemInTest {
public static void main(String[] args) {
System.out.println("알파벳 하나를 쓰고 [ENTER]를 누르세요");
int i; // 값을 받을 변수
try
{
i = System.in.read();
System.out.println(i);
System.out.println((char)i);
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
알파벳 하나를 쓰고 [ENTER]를 누르세요
A
65
A
2.
public class SystemlnTest2 {
public static void main(String[] args) {
System.out.println("알파벳 여러 개를 쓰고 [ENTER]를 누르세요.");
int i;
try
{
while(( i=System.in.read() ) != '\n') // i에서 읽은 값이 \n이 아닐 때까지
{
System.out.print((char)i);
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
알파벳 여러 개를 쓰고 [ENTER]를 누르세요.
dfafd
dfafd
알파벳 여러 개를 쓰고 [ENTER]를 누르세요.
안녕하세요
¾?³???¼¼¿? // 한글은 깨진다, 한 바이트씩 밖에 못 읽어서
3. 한글 안 깨지게 하는 InputStreamReader 함수
import java.io.IOException;
import java.io.InputStreamReader;
public class SystemlnTest2 {
public static void main(String[] args) {
System.out.println("알파벳 여러 개를 쓰고 [ENTER]를 누르세요.");
int i;
try
{
InputStreamReader irs = new InputStreamReader(System.in); // 바이트 -> 문자열 변환
while(( i=irs.read() ) != '\n') // i에서 읽은 값이 \n이 아닐 때까지
{
System.out.print((char)i);
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
알파벳 여러 개를 쓰고 [ENTER]를 누르세요.
안녕
안녕