• 티스토리 홈
  • 프로필사진
    tjdudtn
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
tjdudtn
  • 프로필사진
    tjdudtn
    • 분류 전체보기 (299)
      • JAVA (155)
        • JAVA 수업 메모 (0)
        • JAVA 수업 파일 (0)
        • JAVA 기초문법 (18)
        • JAVA 객체지향 핵심 (25)
        • JAVA 유용한 클래스 (33)
        • JAVA Swing (18)
      • Data Structure( 자료구조 ) (17)
        • 컬렉션 프레임워크 (4)
        • JDBC (8)
      • 기초 개념 및 환경 설정 (17)
        • HTTP 기초 지식 (사전기반지식) (13)
        • 웹 서버와 웹 애플리케이션 서버(WAS)란? (1)
        • WAS와 웹 컨테이너의 역할 (1)
        • 아파치 톰캣 설치하기 (1)
        • 아파치 톰캣 시작과 폴더 구조 확인 (1)
      • 서블릿 기본 개념과 활용 (8)
        • 서블릿이란? (1)
        • 서블릿 Life Cycle 이란? (1)
        • 서블릿 작성, 배포, web.xml 설정의 이해 (1)
        • Get, Post 요청 방식의 이해 (1)
        • 서블릿과 서블릿 컨텍스트란? (1)
        • 서블릿과 데이터베이스 연동 (1)
        • 잠깐! server.xml과 context.xml.. (1)
        • 서블릿 필터와 리스너란 뭘까? (1)
      • JSP 기본 문법과 구조 (9)
        • JSP(Java Server Pages) 란? (1)
        • JSP 라이프사이클 (1)
        • JSP 기초문법 (1)
        • JSP 주석과 지시자 (1)
        • JSP 기본 태그 ( 스크립트릿, 선언, 표현식 .. (1)
        • JSP 지시자 ( Directive ) 간단 정리 (1)
        • JSP 내장 객체란 뭘까? (1)
        • 폼 처리와 요청 방식 (1)
        • 쿠키와 세션 관리 (1)
      • 서블릿과 JSP의 연동 (7)
        • 서블릿과 JSP의 개념과 차이점 (1)
        • 간단한 게시판 만들어 보기 (1)
        • JSP와 MVC 패턴 Todo 프로젝트 (1)
        • 커스텀 태그 ( JSTL ) 라이브러리 사용, (.. (1)
        • JSTL을 활용한 게시판 기능 만들기 (1)
        • JSP 파일 업로드 (1)
        • JSP 프로그래밍 활용 (1)
      • JavaScript (24)
        • JavaScript 게시판 만들기 (9)
      • Spring Boot (34)
        • Bank App 만들기 (deployment) (31)
      • Flutter (8)
      • MySQL (20)
      • 기술 면접 준비 자료 (0)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 표준 입출력이란?
        2024년 09월 15일
        • tjdudtn
        • 작성자
        • 2024.09.15.:06

        자바에서 표준 입출력(Standard Input/Output)은 프로그램과 사용자 간의 기본적인 데이터 교환 방법을 제공합니다.

         

         

        표준 입출력의 핵심 요소

        1. System.in
          • **System.in**은 자바 프로그램의 표준 입력 스트림입니다. 기본적으로 이 스트림은 키보드 입력을 받습니다. 이는 InputStream 객체로, 바이트 기반의 낮은 수준의 입력 기능을 제공합니다. 일반적으로, 사용자로부터 텍스트를 읽기 위해 Scanner 클래스나 **BufferedReader**와 같은 더 높은 수준의 래퍼(wrapper)를 사용하여 쉽게 데이터를 처리할 수 있습니다.
        2. System.out
          • **System.out**은 자바 프로그램의 표준 출력 스트림으로, 텍스트 데이터를 콘솔에 출력합니다. 이 스트림은 PrintStream 객체로, println(), print(), printf() 등의 메소드를 제공하여 다양한 형식으로 데이터를 콘솔에 출력할 수 있습니다.
        3. 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바