본문 바로가기

java/개념68

File 클래스 File 클래스- 다양한 파일 관리 작업 지원- 파일이나 디렉터리에 대해 속성 정보(경로명, 크기, 타입, 수정 날짜 등)를 제공- 파일 삭제, 디렉터리 생성, 파일 이름 변경, 디렉터리 내 파일 리스트 제공- 파일 입출력 기능 없음- 파일을 읽고 쓰기 위해 파일 입출력 클래스(FileInputStream, FileOutputStream, FileReader, FileWriter 등) 사용 File 객체 생성File f = new File("c:\\Temp\\test.txt);File f = new File("c:\\Temp", "test.txt"); //디렉터리와 파일명을 나누어 전달- c:\Temp\test.txt 파일의 File 객체 생성 File 클래스 생성자File 클래스를 이용한 파일 및 디렉.. 2024. 6. 23.
버퍼 입출력과 파일 입출력 버퍼 없이(unbuffered I/O 방식) 입출력을 처리하면 비효율적- 입출력 스트림은 운영체제 API를 호출하여 입출력 장치↔프로그램 데이터 전송- API가 자주 호출되고 입출력 횟수가 늘어나므로 시스템 효율과 실행 속도 저하>> 버퍼(buffer)를 사용해 효율적 작동 가능 버퍼- 데이터를 일시적으로 저장하기 위한 메모리 - 파일에 쓸 데이터를 버퍼에 모아 두었다가 한 번에 운영체제 API를 호출하여 작성- 운영체제 부담 감소, 시스템 효율 증가 버퍼 입출력- 입출력 스트림이 버퍼를 가지고 입출력을 처리하는 방식- 버퍼를 가지는 스트림을 버퍼 스트림(Buffered Stream)이라 함- 버퍼 입력 스트림: 입력 장치로부터 입력된 데이터를 버퍼에 모아서 프로그램으로 전송- 버퍼 출력 스트림: 프로그.. 2024. 6. 23.
바이트 스트림과 파일 입출력 바이트 스트림- 바이트 단위로 데이터가 흐르는 스트림- 바이너리 데이터를 있는 그대로 입출력- 이미지나 동영상 파일 입출력에 필수적 InputStream, OutputStream- 추상 클래스- 바이트 입출력 처리를 위한 공통 기능을 가진 슈퍼 클래스 FileInputStream, FileOutputStream- 파일 입출력을 위한 클래스- 파일로부터 바이너리 데이터를 읽거나 파일에 바이너리 데이터를 저장 DataInputStream, DataOutputStream- 기본 타입 값을 바이너리 형태로 입출력- 문자열을 바이너리 형태로 입출력FileOutputStream을 이용한 바이너리 파일 쓰기- 프로그램 내의 변수나 배열에 들어 있는 바이너리 값을 그대로 파일에 저장- 메모리에 있는 이미지 비트들을 그.. 2024. 6. 20.
문자 스트림과 파일 입출력 문자 스트림 클래스- 문자 스트림은 2바이트의 유니코드 문자를 단위로 입출력- 문자화되지 않는 바이너리 정보(ex: 이미지)들은 문자 스트림 클래스에서 처리 불가※ 바이너리 코드: 컴퓨터가 이해할 수 있는 이진코드(0과 1로 구성)    바이트 코드: 가상 머신(VM)이 이해할 수 있는 이진코드  - 문자 입력 스트림은 바이트들을 전달받고 이 바이트들을 '로컬 문자 집합'에 있는 문자인지 비교하여 문자로 변환- 로컬 문자 집합에서 찾을 수 없는 경우 문자가 아니거나 문자 집합이 잘못 설정되어 있는 경우임 FileReader 생성자 FileReader, Reader, InputStreamReader의 공통 주요 메소드FileReader를 이용한 텍스트 파일 읽기 파일 입력 스트림 생성FileReader f.. 2024. 6. 19.
입출력 스트림 스트림 입출력- 스트림(Stream): 연속적인 데이터의 흐름 or 데이터를 전송하는 소프트웨어 모듈- 자바에서 입출력 스트림은 응용프로그램과 입출력 장치를 연결- 응용프로그램은 입력 스트림과 연결- 입력 스트림은 키보드 장치를 제어하여 사용자의 키 입력을 받아 응용프로그램에 전달- 응용프로그램은 출력 스트림과 연결, 출력 스트림에 출력- 출력 스트림은 다른 끝에 연결된 출력 장치를 제어하여 출력 완성 >>자바 응용프로그램은 입출력 장치를 직접 제어하는 대신 입출력 스트림 객체와 연결하여 데이터 입출력을 쉽게 실행스트림을 사용하지 않고 자바 응용프로그램이 입출력 장치를 직접 제어했다면, 응용프로그램 작성과 다양한 입출력 장치 사용이 어려웠을 것입출력 스트림의 특징 1. 스트림의 양 끝에는 입출력 장치와 .. 2024. 6. 19.
제네릭과 배열 제네릭에서 배열의 제한GStack[] gs = new GStack[10]; //컴파일 오류T[] a = new T[10]; //컴파일 오류- 제네릭 클래스 또는 인터페이스 타입의 배열 선언 불가- 제네릭 타입 배열 허용하지 않음return (T)stck[tos]; //예제 7-9 참고- 제네릭 타입 배열 불가하므로 타입 매개변수 T로 강제 캐스팅- 예제 7-9에서는 Object 타입으로 배열 생성 후 타입 캐스팅함public void myArray(T[] a) { ... }- 제네릭 타입 배열 선언 허용제네릭 메소드- 클래스의 일부 메소드만 제네릭으로 구현 가능class GenericMethodEx{ static void toStack(T[] a, GStack gs){ for(int i=0; i.. 2024. 6. 10.