1. API-IO(Input 스트림 - Output스트림)
* 스트림이란? - 데이터의 흐름
입력스트림,출력스트림,에러스트림
* 바이트 기반스트림 - 모든종류
*문작기반 스트림 - 오직 문자만 (바이트스트림으로는 한글 입력불가)
2.OutputStream
* write(byte) 출력 스트림으로 1바이트 보냄
*write(byte[])
3 \r < carrygereturn
*메모장에 입력할때는 \n\r같이쓰자
4.FileInputStream. /FileoutputStream
*try / catch구문에서 사용하려면 해당클래스 변수 null로초기화후 사용
*finally에는 스트림 둘다 닫아줘야함
.write()메소드 < ex> String str = "hi" 한후에 byte[] arr = str.getBytes(); 후에 출력변수.write(arr)하면 텍스트파일에 hi 라고써짐 ((write는 매개변수로 byte타입을 받음))
*파일 읽거나 보낼 경로 쓸떄는 (I/O)변수 = new (I/O)클래스("경로입력\\파일명")
5.File클래스
File 변수명 = new File("파일 생성할 경로입력")
변수.midkr(); << 파일생성
변수.exists() << 폴더가 존재여부 boolean타입으로 반환
변수.delete(); << 폴더삭제
byte[] arr = new byte[100]; <<
인풋스트림 변수.read(arr);l << 토탈 데이터를 받는다
* FileReader클래스도 메소드기능 거의비슷
1byte 스트림에 한글2byte를 넣으면 출력못함
BufferedInputStream 은 바이트기밥ㄴ 성능향상 스트림입니다.
* 문자를 쓰게이네 적합하지 않습니다.
bw.write(str1 + "\r\n" + str2);
BufferedReader에는 readLine메소드라고 한줄씩읽는 특별한기능을가진 메소드가있다 (여기서한줄은 ex)메모장의한줄)
while ( (str = br.readLine()) != null)
{
System.out.println(str); 하면 다출력되는데 br.readLine넣으면 첫줄은 출력못한다! 왜냐면 와일문에서이미한번썼기때문
}
또신기한게 인코딩의 형식을 utf-8에서 다른걸로 바꾸면 이클립스에서 다시 읽을라하면 못읽는다
이클립스는 utf-8로 인식하려하는데 파일이 그게아니여서 서로안맞는 뭐그런건데 정확히는 모르겠다