티스토리 뷰
■date, calendar
date > 내부API(sql, util / 주로 util 사용)
pattern -> (개발자들) 약속
(패키지 : dateTest)
■파일 입출력(Java Application 관점)
자바입장(관점)에서 보기
java -> txt : 출력 / txt -> java : 입력
■Stream 데이터가 전송될 때 필요한 연결통로 (byte(0,1)로 변환해서)
출력 시 byte 변환 방식 -> encoding 방식 / 도착지에서 decoding
encoding, UTF-8 전 세계에서 많이 사용
완성형(MS949), 조합형(효율적, UTF-8, 가변형)
■stream 개별처리(byte로 보냄)
buffer 임시저장공간(일괄처리를 위한)(완성된 문자나 문자열을 보냄), stream 상속받음
flush() : 버퍼 안에 있는 데이터들이 목적지에 맞게끔 전송이 됨.
버퍼를 비워주는 메소드
완성된 데이터들이 도착지까지 갈 수 있는 메소드
완성했으면 사용자가 직접 전송해줘야 함.
플러쉬
close() : flush하고 자동으로 통로를 닫아줌.
영상에서 버퍼링 : buffer에 담는 중
■Stream이라는 연결통로를 통해 원본 데이터가 알맞는 인코딩 방식으로 전송된다.
byte단위로 입출력되기 때문에 개별처리이며, 상세 연산이 필요하지 않다면
Buffer를 사용한 입출력을 권장한다. Buffer를 사용하면 일괄처리가 가능해진다.
※ 인코딩 방식
인코딩 방식은 완성형과 조합형이 있다.
- 완성형 : 각, 간, 갇, 갈, ... 갛
- 조합형 : ㄱ + ㅏ + ㄱ
조합형이 효율적이며 byte단위로 데이터를 전송할 때 고정된 byte가 아니기 때문에
가변형 인코딩 방식을 선호한다.
조합형이면서 가변형인 인코딩 방식은 UTF-8이며, 전 세계에서 가장 많이 사용되는 방식이다.
■Writer(출력)
BufferedWriter : 버퍼를 사용한 출력 클래스
FileWriter : 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다.
전달한 경로에 파일이 없다면 새롭게 만든 후 열어준다.
■Reader(입력)
BufferedReader : 버퍼를 사용한 입력 클래스
FileReader : 전달한 경로의 파일을 입력하기 위한 목적으로 열어준다.
전달한 경로에 파일이 없다면 오류가 발생한다(FileNotFoundException).
■File(파일 정보)
전달한 경로에 있는 파일의 정보를 담는 타입.
디렉터리(폴더) 생성, 해당 경로의 전체 파일 목록, 파일 삭제 등
절대 경로 : 어디에서 작성해도 찾아갈 수 있는 경로, C:/a/b
상대 경로 : 현재 위치에 따라 변경되는 경로, ../a/b
현재 위치 : ./ (생략 가능)
이전 경로 : ../
가장 최상위 경로로 이동해라 : / (상대경로에서 사용X)
자바는 무조건 현재 경로 : 프로젝트 폴더로 시작
외부에 있는 것을 접근할 때 input, output exception 생길 수도 있으니 -> 안전장치 try-catch문
■예외처리 방법
1.try-catch문
2.throws (예외던지기)
(패키지 : fileTest)
----------------------------------------------------------------
■MVC모델 : 소프트웨어 디자인 설계 패턴(약속)
DB
Model(VO, DTO)
View
Controller(DAO)
모델객체는 상속받으면 안됨.
■소프트웨어 디자인 설계 패턴
▶MVC
M(Model) : DB에서 조회된 결과 값을 담기 위한 변수들이 선언된 클래스
- 클래스명 뒤에 VO, DTO라는 문자열을 붙여준다.
- VO(Value Object) : 테이블을 보고 그대로 만든 객체
- DTO(Data Transfer Object) : 화면에 결과를 담아서 전달할 걕체
V(View) : 사용자에게 보여질 화면을 구성하는 부분
- Controller에 선언된 CRUD메소드를 사용하는 부분
C(Controller) : DB에 접근할 수 있는 메소드들이 선언된 클래스(DAO)
- 접근 후 결과 값이 있을 경우 Model 객체에 담은 후 처리
- 클래스명 뒤에 DAO라는 문자열을 붙여준다.
- DAO(Data Access Object)
'2022 > java 2' 카테고리의 다른 글
웹 크롤링(web scraping) (0) | 2022.09.13 |
---|---|
day16[Thread,Singleton] (0) | 2022.08.19 |
day15[Thread,join(),Synchronized] (0) | 2022.08.18 |
day14[Collection Framework_HashSet,Iterator,HashMap,Stream] (0) | 2022.08.18 |
day13[ArrayLIst 실습,빠른for문] (0) | 2022.08.18 |