JAVA/Java2021-3
OutputStream -FileOutputStream(바이트 단위), 실습
RoarinGom
2021. 10. 23. 12:09
OutputStream : 바이트 단위 출력 스트림의 최상위 클래스
FileOutputStream
: FileInputStream의 경우 파일이 존재하지 않으면 FileNotFoundException이 생긴다
FileOutputStream의 경우 파일이 존재하지 않으면 파일이 생성됨.(기존에 있는 경우 default 실행은 overwrite)
So, 이어서 쓰고 싶을 땐 FileOutputStream("파일명",true); 해주면 overwrite대신 이어서 덮어쓴다.
예제1) 파일에 한 바이트 씩 쓰기(write 하기)
package Basic_Grammar.chap6.ch08FileIO;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamTest1 {
public static void main(String[] args) {
try (FileOutputStream fileOutputStream = new FileOutputStream("output.txt")) {
//write이용하여 한바이트씩 쓰기
fileOutputStream.write(65);
fileOutputStream.write(65);
fileOutputStream.write(65);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("End");
}
}
예제2) A-Z까지 byte[] 배열에 넣고 한꺼번에 파일 쓰기(write 하기)
package Basic_Grammar.chap6.ch08FileIO;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamTest2 {
public static void main(String[] args) throws IOException {
FileOutputStream fileOutputStream = new FileOutputStream("output2.txt",true);
try (fileOutputStream) {//java 9부터 지원되는 문법
//byte[]에 쓸거다
byte[] bs=new byte[26];
byte data=65;
for (int i = 0; i < bs.length; i++) {
bs[i]=data++;
}
fileOutputStream.write(bs);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("End");
}
}