수업/JAVA

230607 수업 (입출력)

보더96 2023. 6. 7. 16:21

입출력

입력 스트림 -> 프로그램 -> 출력 스트림

system.in 

File Input Stream

FileReader

                                       반환형

s.getInputStream()  :  InputStream

p.getInputStream()  :  InputStream

 

 

                                  abstract(바이트 단위)                                 abstract(문자단위)

리소스            File Input Stream  ->   InputStream                    FileReader ->  Reader

 

ex)

문자로만 되어있다 -> FileReader 으로 읽어야함

이미지,mp3,동영상 파일 -> fileInputStream 으로 읽어야함

 

 

reader r = System.in;    X     ㅡㅡㅡ> 자동형변환 안됨!!

reader r = (reader)system.in;      X

new inputstream();       X

new reader();     X               ㅡㅡㅡ> 전부다 불가능!

 

아스키코드가 나옴

가,c,b,a

int r = is.read();

s.o.p(r);           //97

r = is.read();    //98

r = is.read();    //99

r = is.read();    //가 는 나올수가 없음

 

reader에 상속되는 애들은 뒤에 reader가 붙여진다.

reader을 사용하면

Reader rdc new InputStream Reader(is);

r = rd.read();            //한문자를 받아서 반환한다.

s.o.p(r);                   //97,98,99,문자단위(유니코드로 변환되어 나온다) 가 나올수 있다.

 

write

FileOutputStream fos = new FileOutputStream ("a txt");

fos.write(1);   //1byte 값쓰기

fos.write(10);  //1.0의 byte 값쓰기

 

FileWrite fw = new FileWriter("b.txt");

fw.write('A');    //'A'문자값쓰기

fw.write('B');    //'B'문자값쓰기

fw.write(67);    //67의 문자값쓰기

안되는 경우

 

 

 

ois = 객체역직렬화

지금 사용하는 객체를 유지하기 위해서

객체직렬화 = 객체를 그상태 그대로 얼린다!

object o = ois.readObject();           ->     객체역직렬화(객체를 녹인다.)

oos.writeObject(new Date());        ->      객체직렬화(객체를 그 상태로 얼린다.)

파일로부터 데어터타입별 읽기

자원: 파일(a.txt)

노드스트림 : FileInputStream

필터스트림 : DataInputStream

 

자식 exception이 앞에!

부모 exception은 뒤에 와야한다.

 

fr.close();  ㅡ>  자원과 연결을 끊는다. (객체를 없애는것이 아니다! 연결 정보만 끊는것!)

 

참조형 변수를 초기화 하려면 = null; 을 해준다.