본문 바로가기

AdvancedJava

[3일차] 문자세트와 문자 인코딩 그리고 직렬화...

테이블 이름.



euc - kr


unix시스템에서 정의한 문자셋


리눅스서버로 많이 사용하기 때문에 이거 쓰는 경우가 많다. 



ksc-5601

코리아 스탠다드 char-set 테이블 이름.


iso -2022-kr


인터내셔널 스탠다드 한글 char-set 표준


cp949

코드페이지 949 char-set 윈도우에서 쓰는 문자셋


utf-8



unicode

전세계의 문자를 표현 

그래서 글자가 커져서 숫자를 바로 쓰면 바이트단위로 쓰기 때문에 문제가 생김 , 그래서 1byte단위로 받아서 하는 인코딩하는게 utf-8 ,2byte단위로 받아서 쓰는게ㅔ utf-16


자바는 unicode에 utf-16을 쓴다. 



한글

일본어

중국어

다 됨 다 ~ 


'가' -> charset (unicode)-> code-> encoding(utf-8)   =>  [ ] [ ] [ ] [ ] [ ] [ ]  <- 이것이 바이트 array 문자셋은 서버랑 합의 함.


xml 인코딩 방식과 같이 같이 넣어서 보내는 방식.


write하는 내가 저장을 하는 것이다. 당연히 read() 할때도 같은 encoding 방식으로 해야한다. 


reader를 생성할 때는 반드시 문자이므로 char-set을 반드시 넣어줘야한다. 



어쨋든


Buffered Reader()
Buffered writer

InputStreamReader(       , char-set을 여기 지정해준다. )


new Buffered Reader( InputStreamReader())


flush 버퍼에 데이터가 가득차 있건 아니건 강제로 밀어내도록 하는 메소드. 



왜 offset을 이용할까 ? 만약에 데이터를 읽었는데 중간만 읽었을 경우 offset을 알아두면 나머지를 읽는다. 

한번에 모든 데이터를 읽기 보단 끊어서 읽을 수 있기때문에 

하......................................................



안드로이드 할때 fileoutput 스트림을 사용하도록 하겠다.


mark라는게 있는데 데이터를 mark 해놓으면, mark 해놓은 자리로 가서 다시 읽을 수 있다. 


Serialization(직렬화)

객체를 내가 InputStream 

'AdvancedJava' 카테고리의 다른 글

[4일차] Thread, syncronized,생산자 소비자  (0) 2016.07.08
[3일차]쓰레드 쓰레드  (0) 2016.07.07
[3일차] IO  (0) 2016.07.07
[3일차] list 실습  (0) 2016.07.07
[3일차] List Array,Collection  (0) 2016.07.07