어읽로꾸거
[네트워크 프로그래밍] 3. Stream - BufferedStream, DataStream, CharacterStream 본문
Buffered Stream
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in, int bufferSize)
BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out, int bufferSize)
default input buffer = 2048
default output buffer = 512
BufferedOutputStream
네트워크에 용이
- TCP/IP 헤더 40바이트
- 1kb를 보낼때 1바이트씩 보낼 경우 41kb를 보냄
- 1kb를 한꺼번에 보낼 경우 1.04kb를 보냄
BufferedInputStream
read() called => buf에서 가져옴
2048바이트를 최대한 가져오려고 함
1바이트만 호출해도 수백개의 바이트를 갖고오는거나 시간이 비슷함
DataStream
DataInputStream(InputStream in)
DataOutputStream(OutputStream out)
DataOutputStream
writeBoolean
writeByte ... writeDouble 등등
All data is written big-endian format(BigEndian) (왼쪽부터 2의0승 1승...)
Chars are written as two unsigned bytes
DataInputStream
readBoolean
readByte ... readDouble 등등
readFully(byte[] input, num) ...
- HTTP header를 읽을떄 좋음
CharacterStream
각각 os에서 여러 인코딩으로 글자를 저장함
이런 경우를 도와주는 스트림
Reader/Writer로 구분
자동으로 OS의 인코딩으로 바꿔줌
Writer
Abstract class 라이터(outputstream이랑 비슷해), byte대신 Char[] 혹은 String
OutputStreamWriter()
=> 자바에서 캐릭터를 받음
특정 인코딩으로 바이트 어레이로 인코딩함
i/o 스트림에 씀
OutputStreamWriter(OutpusStream out, String encoding)
=> 특정 인코딩으로 변환
=> getEncoding하면 어떤 인코딩인지 가져옴
Reader
Abstract class 리더(inputStream이랑 비슷) char[]로 가져옴
InputStreamReader()
=> InputStream을 받아옴
=> 이 바이트들을 정해진 인코딩에 따라서 변환해서 가져옴
FileReader & FileWriter
이 둘은 파일을 윈도우 기본 인코딩으로 변환한다,
BufferedReader & BufferedWriter
버퍼가 적용된 Reader & Writer
'정리' 카테고리의 다른 글
[CVE-2024-3094] XZ 백도어 이슈 동작 정리 (SSH) (1) | 2024.04.21 |
---|---|
[Python] PIP 모든 모듈 삭제 (0) | 2023.12.11 |
[컴퓨터회로] 2. 불 대수 (0) | 2022.09.14 |
[CSS] z-index 가 작동하지 않을 때 (0) | 2022.09.13 |
[네트워크 프로그래밍] 2. Stream - InputStream (0) | 2022.09.13 |