스트림
노드스트림
- 노드 사이에 데이털ㄹ 전송하는 스트림
- 단방향으로 입력과 출력이 동시는 안됨
- byte/char로 나뉜다.
inputstream
- is.read(배열)
- 해당 배열에 읽은 값을 넣는다.
- 읽은 길이를 리턴
inputstream is = new bytearrayinputstream(data1.getbytes); int read = -1
- 한개씩 while(read = is.read() !=-1)
- buffer만큼 while(read = is.read(buffer) >0)
출력 new String(배열,시작,끝) //해당 배열의 시작부터 끝을 string으로 변환
reader
- byte대신 char를 읽는다.
reader i = new chararrayreader(data2.tochararrya());//char배열로 읽는다.
outputstream
- os.write(배열,시작,끝)
- 배열의 시작부터끝을 문자열로 반환해서 출력
- flush
- 내용을 출력하고 비우기
write
- append로 이어서 쓰기 가능
file
- 내용에 관여는 안됨
- 파일 생성, 삭제 등이 가능
FileInputStream()
- 경로 파일 읽기
FIleOutputStream()
- 경로에 파일을 출력
fileinputstream fin = new filestream(src) fileoutputstream fout = new fileoutputstream(tag) byte[] buffer = new byte[크기]; int read = 0; while(read=fin.read(buffer)>0) fout.write(buffer,0,read);
FileReader() FileWriter() FileReader fin = new FileReader(src) FileWriter fout = new FileWriter(tag) String str = null; writer.write(str)
int read = 0; char[] buffer = new char[10]; while(read=fin.read(buffer)>0) String.valueOf(buffer,0,read)
보조스트림
- 노드 스트림 사이에 사용
-
문자set변환, buffering, 기본데이터 형 전송, 객체 입출력
- 키보드는 무조건 byte라고 한다.
활용
byte->char inputstreamreader(inputstream
객체 직렬화
- 파일등을 보낼때 연속적인 파일로 보내는거
- serializable인터페이스를 구현한것
- 실제로 구현할 메소드는 없는 빈 인터페이스이다.
- 제외 멤버는 transient선언을 해준다.
objectinputstream objectoutputstream
objectoutputstream oos = new objectoutputstream(new fileoutputstream(target)) oos.writeobject(객체)
objectinputstream ois = new objectinputstream(new fileinputstream(src)) object read = ois.readobject()
read!=null && read instanceof person person p = (person)read;