스트림

노드스트림

  • 노드 사이에 데이털ㄹ 전송하는 스트림
  • 단방향으로 입력과 출력이 동시는 안됨
  • 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;