// 기존의 파일에 append 하고 싶으면 (파일 루트, true)
OutputStream os = new FileOutputStream("C:/Temp/db");
// os.write((byte)10);
// os.write((byte)20);
byte[] arr = new byte[] {10,20,30,40,50};
// os.write(arr);
os.write(arr,1,3);
os.flush();
os.close();
InputStream is = new FileInputStream("C:/Temp/db.text");
// byte 1개씩 읽기
// while(true) {
// int data = is.read();
// if(data==-1) break;
// System.out.println(data);
// }
byte[] data = new byte[100];
while(true) {
int num = is.read(data);
if(num==-1) break;
for(int i=0; i<num; i++) {
System.out.println(data[i]);
}
}
is.close();
=> 바이트 입출력 스트림을 사용하여 이미지 파일 복사하기
String original = "C:/Temp/testimg.jpg";
String copy = "C:/Temp/testimg2.jpg";
InputStream is = new FileInputStream(original);
OutputStream os = new FileOutputStream(copy);
byte[] data = new byte[100];
while(true) {
int num = is.read(data);
if(num == -1) break;
os.write(data, 0, num);
}
is.close();
os.close();
자바 9부터 is.transferTo(os); 로 손쉽게 복사할 수 있는 메서드가 추가되었다고 하는데, 자바 8을 사용중이라 적용해보지 못 했다.
FileWriter fw = new FileWriter("C:/Temp/test.txt");
fw.write("hello java");
fw.flush();
fw.close();
FileReader fr = new FileReader("C:/Temp/test.txt");
char[] data = new char[1024];
while(true) {
// int i = fr.read();
// if(i==-1) break;
// System.out.print((char)i);
int i = fr.read(data);
if(i==-1) break;
for(int j=0; j<i; j++) {
System.out.print((char)data[i]);
}
}
fr.close();