자바/자바 입문 공부일지
자바 기초 공부 일지 52. 버퍼 (작성 수정중)
Tomitom
2022. 11. 8. 10:12
반응형
InputStream in = new FileInputStream("date.dat"); // 입력 스트림 생성
int data = in.read(); // 데이터 읽어 들임
OutputStream out = new FileOutputStream("date.dat"); // 출력 스트림 생성
out.write(7); // 데이터 7을 파일에 전달
버퍼 : 스트링 중간에 존재해서 데이터를 한꺼번에 데려오는 수레같은 역할을 함.
이동횟수가 줄기 때문에 속도 개선 효과를 가져다줌
파일 대상 입출력 스트림을 생성한 이후에는 반드시 닫아주어야 한다.
package day21;
import java.io.*;
/*
* 파일 입출력 시 존재하지 않는 파일에 출력을 하기 위한 스트림을 형성하면,
* 파일이 새롭게 만들어진다. 그러나 입력 스트림은 존재하지 않는 파일에 대해 형성할 수 없다.
*/
public class IOstream {
public static void main(String[] args) throws IOException {
OutputStream os = new FileOutputStream("data.dat");
// 아웃풋 스트림이라는 추상 클래스로부터 만들어진 클래스 (다형성 기반)
os.write(7);
os.close();
}
}
package day21;
import java.io.*;
/*
* 파일 입출력 시 존재하지 않는 파일에 출력을 하기 위한 스트림을 형성하면,
* 파일이 새롭게 만들어진다. 그러나 입력 스트림은 존재하지 않는 파일에 대해 형성할 수 없다.
*/
public class IOstream {
public static void main(String[] args) throws IOException {
InputStream os = new FileInputStream("data.dat");
// 아웃풋 스트림이라는 추상 클래스로부터 만들어진 클래스 (다형성 기반)
System.out.println(os.read());
os.close();
}
}
버퍼를 이용하면 입출력 시 속도 개선 효과가 있다.
package day21;
import java.io.*;
/*
* 파일 입출력 시 존재하지 않는 파일에 출력을 하기 위한 스트림을 형성하면,
* 파일이 새롭게 만들어진다. 그러나 입력 스트림은 존재하지 않는 파일에 대해 형성할 수 없다.
*/
public class IOstream {
public static void main(String[] args) throws IOException {
try(OutputStream os = new FileOutputStream("cpy.dat");
InputStream is = new FileInputStream("data.dat")){
byte[] buff = new byte[1024];
int data;
while(true) {
data = is.read(buff);
if(data== -1) {
break;
}
os.write(buff, 0, data);
}
}
}
}
반응형