2025/07/19 5

산술 연산자

묵시적 형변환 (자동 변환)코드byte x = 1; int y = x;설명byte x = 1;x는 byte형입니다. 1바이트(8비트) 크기이고, 값은 00000001 (2진수)로 저장됩니다.int y = x;x를 int형 변수 y에 대입합니다.이때 작은 타입(byte)에서 큰 타입(int)으로 자동으로 형 변환이 일어납니다.Java에서는 데이터 손실이 없기 때문에 컴파일러가 자동으로 변환해 줍니다.결과적으로 y에는 00000000 00000000 00000000 00000001 이라는 4바이트 크기의 정수가 저장됩니다.즉, 묵시적 형변환은 작은 타입에서 큰 타입으로 갈 때 자동으로 일어납니다.(byte → short → int → long → float → double) 명시적 형변환 (강제 변환)코드..

Java 2025.07.19

Scanner

Scanner가 FileInputStream을 통해 데이터를 읽는 구조코드FileInputStream fis = new FileInputStream("res/kors.txt");Scanner scan = new Scanner(fis);fis: 파일에서 1바이트씩 읽어올 수 있는 입력 스트림scan: 입력 스트림을 이용해 문자열 단위 또는 숫자 단위로 읽을 수 있는 고수준 클래스흐름 설명kors.txt 안에는 "70 80"이라는 텍스트가 저장되어 있음해당 텍스트는 내부적으로 ASCII 코드로 아래와 같이 저장됨: 문자 ASCII '7'55'0'48' ' (공백)32'8'56'0'48따라서 FileInputStream이 읽어오는 순서:55 48 32 56 48('7''0'' ''8''0')Scanner는..

Java 2025.07.19

파일 입력 스트림

파일 내용 확인tks.txt 파일 내용:80 90 100※ 텍스트 파일에는 문자열로 숫자가 들어있고, 이 숫자들은 사람이 보기 좋게 공백으로 구분되어 있습니다. 코드 설명FileInputStream fis = new FileInputStream("res/kors.txt"); int code = fis.read(); // 1바이트만 읽기FileInputStream은 파일에서 바이트 단위로 데이터를 읽는 스트림입니다.fis.read()는 한 바이트(=한 글자)를 읽고, 그 바이트의 아스키 코드 값을 int로 반환합니다.이 코드에서는 첫 글자인 '8'을 읽고, 이는 아스키 코드 값 56입니다. System.out.println(code);System.out.println(code); // 출력: 56code에..

Java 2025.07.19

버퍼와 스트림

스트림(Stream)이란?스트림이란 말 그대로 "데이터의 흐름 통로"입니다.자바에서 스트림은 입력(Input) 또는 출력(Output) 작업을 할 때 데이터를 연속적으로 흘려보내는 방식을 의미합니다.예시:OutputStream os = new FileOutputStream("data.txt");os.write(65); // 문자 'A'를 파일에 씀위 코드는 data.txt라는 파일로 바이트 데이터를 흘려보내는 통로를 만든 것입니다. 스트림의 특징단방향입니다.→ 입력 스트림은 읽기 전용, 출력 스트림은 쓰기 전용입니다.연속적이고 일회용입니다.→ 데이터를 한 번 흘려보내면 끝. 이미 지난 데이터는 다시 읽거나 쓸 수 없습니다.자체적으로 데이터를 저장하지 않음→ 스트림은 단순히 흐름만 제공하지, 데이터를 잠시..

Java 2025.07.19

PrintStream 객체

전체 구조 요약PrintStream fout = new PrintStream(fos);fout: PrintStream 객체 (문자 출력용)fos: FileOutputStream 객체 (바이트 출력용)fout은 내부적으로 fos를 감싸고 있습니다. 즉, PrintStream이 바깥쪽에 있고, 최종적으로 FileOutputStream이 파일로 출력합니다. 입력 데이터fout.print(70); fout.printf("%d %d", 70, 80);70과 80이라는 숫자를 fout을 통해 출력합니다.하지만 PrintStream은 숫자를 그대로 70, 80 바이트 값으로 저장하지 않고,👉 "문자 '7', 문자 '0'"처럼 문자열로 바꿔서 저장합니다. 버퍼 내부 모습 (이미지 왼쪽 박스)'7' '0' ' ' '8..

Java 2025.07.19