- 표준 입출력이란?2024년 09월 15일
- tjdudtn
- 작성자
- 2024.09.15.:06
자바에서 표준 입출력(Standard Input/Output)은 프로그램과 사용자 간의 기본적인 데이터 교환 방법을 제공합니다.
표준 입출력의 핵심 요소
- System.in
- **System.in**은 자바 프로그램의 표준 입력 스트림입니다. 기본적으로 이 스트림은 키보드 입력을 받습니다. 이는 InputStream 객체로, 바이트 기반의 낮은 수준의 입력 기능을 제공합니다. 일반적으로, 사용자로부터 텍스트를 읽기 위해 Scanner 클래스나 **BufferedReader**와 같은 더 높은 수준의 래퍼(wrapper)를 사용하여 쉽게 데이터를 처리할 수 있습니다.
- System.out
- **System.out**은 자바 프로그램의 표준 출력 스트림으로, 텍스트 데이터를 콘솔에 출력합니다. 이 스트림은 PrintStream 객체로, println(), print(), printf() 등의 메소드를 제공하여 다양한 형식으로 데이터를 콘솔에 출력할 수 있습니다.
- System.err
- **System.err**도 PrintStream 객체로, 주로 에러 메시지나 중요한 경고 메시지를 콘솔에 출력할 때 사용됩니다. **System.out**과 기능적으로 동일하지만, 일반 출력과 에러 출력을 구분하여 사용자에게 보여주는 데 도움을 줍니다.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter your name: "); String name = scanner.nextLine(); System.out.println("Hello, " + name + "!"); System.err.println("This is an error message!"); } }
시나리오 코드 1
package io; import java.io.IOException; public class MySystemIn { public static void main(String[] args) { // 키보드에서 데이터를 응용 프로그램 안으로 넣기 System.out.println("알파벳 하나를 쓰고 Enter를 누르세요"); // 바이트 동작 --> 0과1로 구성 // 정수 -> byte, short, int, long int i; // 한 바이트씩 키보드에 값을 읽어라 try { i = System.in.read(); System.out.println("----------------"); // 출력 System.out.println("i : " + i); // 문자로 변환하고 싶다면 --> 컴퓨터 안에 있는 문자표를 활용(인코딩) System.out.println( (char) i); } catch (IOException e) { e.printStackTrace(); } } // end of main }
💡 바이트 기반 스트림
InputStream / OutputStream: 이 클래스들은 데이터를 바이트 단위로 읽고 쓰는 기본적인 기능을 제공합니다.시나리오 코드 2 - 한 바이트 씩 여러 글자를 받을 수 있도록 기능 확장 (while)
package io; import java.io.IOException; public class MySystemIn2 { public static void main(String[] args) { // 키보드에서 데이터를 응용 프로그램 안으로 넣기 System.out.println("알파벳 하나를 쓰고 Enter를 누르세요"); // 바이트 동작 --> 0과1로 구성 // 정수 -> byte, short, int, long int i; // 한 바이트씩 키보드에 값을 읽어라 try { // 97 != 13 --> true while( ( i = System.in.read() ) != '\\n' ) { System.out.println(" i : " + i); System.out.println(" (char)i : " + (char)i); } } catch (IOException e) { e.printStackTrace(); } } // end of main }
'JAVA > JAVA 유용한 클래스' 카테고리의 다른 글
파일 출력 스트림(문자 기반 스트림) (0) 2024.09.15 파일 입력 스트림(바이트 기반) (0) 2024.09.15 자바 I/O 개론 (0) 2024.09.15 Inner class(중첩 클래스) (0) 2024.09.15 Thread에 wait와 notify(프로듀서-컨슈머패턴) (0) 2024.09.15 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)