java028-2

제로·2022년 9월 25일
0

Java basic

목록 보기
37/45
post-custom-banner

InputStream

  1. 바이트 기반 입력 스트림의 최상위 클래스로 추상클래스
  2. 주요 메서드
    • int read() : 입력스트림으로부터 1바이트를 읽고 읽은 바이트를 리턴한다
    • int read(byte[] b) : 입력스트림으로부터 읽은 바이트들을 매개값으로 주어진 배열 b에 저장하고 실제로 읽은 바이트 수를 리턴한다.
    • int read(byte[] b, int off, int len) : 입력스트림으로부터 len개 바이트만큼 읽고 매개값으로 주어진 바이트 배열 b[off]부터 len개 까지 저장한다. 그리고 실제로 읽은 바이트 수인 len개를 리턴한다. 만약 len개를 모두 읽지 못하면 실제로 읽은 바이트의 수를 리턴한다
    • void close() : 사용한 시스템 자원을 반납하고 입력스트림을 닫는다.
		// 1. 입력스트림 객체 System.in 통해 객체 생성
		InputStream is = System.in;
		// 2. 여러개의 문자열을 입력할 수 있게 지정(영문)
		byte[] brr = new byte[10]; // byte 단위의 범위(영문, 특수문자 등)
		// 3. read(byte[] ): 해당 배열의 갯수만큼 문자열을 받을 수 있다
		System.out.print("입력할 문자열: ");
		try {
			int n = is.read(brr,0,6);
			
            // 주의 : 문자열의 크기는 배열로 설정되었기 때문에, 설정된 문자보다 적게 입력하더라도 해당 문자의 크기로 담겨진다.
			//	     또한, 더 많은 문자를 입력하더라도 처음에 설정된 크기까지만 입력이 된다.
			// ex) Hello 입력 => new byte[8] ==> ['H','e','l','l','o','',''}
			
			// cf) byte, char 배열의 문자열 형변환 ==> new String(byte[]), new String(char[]) 
				   
			// n : 입력한 문자의 갯수
			// byte[] brr : 입력한 문자의 코드 배열을 할당
			// 만약 ABC 입력하면 ==> byte[] brr={65,66,67};
			System.out.println("문자의 갯수: "+n);
			System.out.println("입력된 문자!");
			// brr[] : 입력된 데이터는 매개변수로 넘길 byte[]에 쌓임
			for(byte b : brr) {
				//brr={65,66,67};
				//(char)brr[0]
				// 'A', 'B', 'C'
				System.out.print((char)b);
			}
				String str1 = new String(brr);
				System.out.println("입력된 문자열:"+ str1);
				is.close();	
			} catch (IOException e) { 
				e.printStackTrace();
			}
profile
아자아자 화이팅
post-custom-banner

0개의 댓글