마트철수
[042] JAVA 마지막: 데이터 입출력 본문
2024.07.08(월)
JAVA 13일차
클래스는 필드, 생성자, 메서드 → #필생메
상속은 메소드 오버라이딩, 다형성, 추상 → #메오다추
문자열은 String 타입 → substring, indexOf, split
main 메소드(혹은 생성자) 안에 위치하면 → 로컬 클래스
ch18 데이터 입출력
문자 입출력 스트림
문자 출력
: write(int c), write(char[ ] cbuf), write(char[ ] cbuf, int off, int len)
: wrute(STring str)
#String을 char 배열로 바꾸려면? .toCharArray( );
바이트 배열로 읽기
: read(byte[ ] b) 메소드
# 상속 관련 - 오버라이딩 / 이름만 다르면 - 오버로드
Reader
: 문자 입력 스트림이 기본적으로 가져야 할 메소드 정의
: reader = new FileReader("C:/ ..."); → 파일이 없으면, FileNotFoundException 오류
# 1 문자씩 읽는 것보다 배열로 읽는 게 더 빠름
# 1 줄씩 읽는 기능은 본래 없음
보조 스트림
: 다른 스트림과 연결되어 여러 편리한 기능을 제공해주는 스트림
: 디폴트 생성자가 없음 !
생성 방법: 보조스트림 변수 = new 보조스트림(입출력스트림); ... 입출력스트림은 원본

> Buffered, Object 붙은 보조스트림이 중요
InputStream을 Reader로 변환
InputStream is = new FileInputStream("C:/...);
Reader reader = new InputStreamReader(is)
#file에 대해서는 FileReader( );
OutputStream을 Writer로 변환
OutputStream os = new FileOutStream("C:/ ..);
Reader reader = new InputStreamReader(is);
성능 향상 스트림
메모리 버퍼로 실행 성능을 높이는 보조 스트림
: 프로그램이 중간에 메모리 버퍼와 작업해서 실행 성능 향상 가능
기본 타입 스트림
: 바이트 스트림에만 연결 가능
dos.writeUTF("홍길동") → String name = dis.readUTF( ); ... 입력한 순서대로 받아야함
객체 스트림
- 직렬화: 메모리에 생성된 객체를 바이트로 변경 ... oos.wruteObject(객체);
- 역직렬화: 직렬화된 바이트를 객체의 필드값으로 복원 ... 객체타입 변수 = 객체타입)ois.readObject( );
- public class 00 implements Serializable 로 인터페이스를 만들어줘야함
# 객체와 byte 배열을 왔다갔다
# 호환성은 없음 (상대방도 JAVA여야 가능)
Serializable 인터페이스
: 멤버가 없는 빈 인터페이스이지만, 객체 직렬화할 수 있다고 표시
: static(정적), transient는 직렬화에서 제외
serialVersionID 필드
: 클래스는 동일해야함
: 내용이 다르더라도 동일한 serialVersionID 상수값을 가지면 역직렬화 가능
#BufferedXxx, ObjectStream 아주 중요함!
File과 Files 클래스
- File 클래스: File 객체를 생성

# new File(Parent File, 파일명)으로 지정 가능
# mkdir( );는 makedirectory의 약어 → mkdirs( ) = 경로상에 없는 모든 디렉토리를 생성
디렉토리와 파일:
● 디렉토리(Directory):
다른 파일이나 디렉토리를 포함할 수 있는 구조. 폴더라고도 불리며, 계층적인 파일 시스템을 구성합니다.
● 파일(File):
데이터를 저장하는 기본 단위. 텍스트, 이미지 등 특정 정보를 담고 있으며, 디렉토리 안에 위치할 수 있습니다.
● composite 패턴:
그릇(디렉토리), 내용물(내용)을 동일시 처리
● 노트북 동일한 환경 구축하기
MySQL :: Download MySQL Community Server

실습
# stream 들어가면 모두 byte
- 문자 입출력 스트림의 write -> 모두 오버로딩
- flush( ) 비어내기, close( ) 닫기
▼ IOException 예외 처리(필수)
}catch(IOException e){
e.printStackTrace();
'KB IT's Your Life > 교육' 카테고리의 다른 글
| [044] SQL 기초 / SQL 고급 (0) | 2024.07.10 |
|---|---|
| [043] 데이터베이스 활용 및 MySQL 환경 구축 (0) | 2024.07.09 |
| [041] 프로그래머스: 유효한 괄호, 두 큐 합 같게 만들기, 괄호 회전하기, 주식 가격 (1) | 2024.07.05 |
| [040] 스트림: 매핑, 정렬, 루핑, 매칭, 집계 (0) | 2024.07.04 |
| [039] Java: 람다식, 스트림 (1) | 2024.07.04 |