Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- set
- where
- Serializable
- array
- Transaction
- 상속
- InputStream
- 다이얼로그
- Join
- java
- 자바
- Reader
- stream
- 난수
- select
- 16bit
- Oracle
- 조회
- Annotaion
- 예외처리
- 8bit
- statement
- transient
- JDBC
- swing
- 오라클
- DB
- Connection
- DB연동
- driver
Archives
- Today
- Total
오버플로
[Java] IO Stream 활용 (2) - 파일 쓰기 본문
~전편에 이어서 2~
오늘은 Stream으로 파일 쓰기!
1. 8bit Stream 활용
- 전 편에서 사용했던 java_test.txt 파일을 읽어서 새로운 파일을 써보자
- test라는 글자가 적혀있음
- FileInputStream과 FileOutputStream을 사용하면 됨
- 파일 복사도 1byte씩 읽어들인 것을 다른 파일에 flush하면서 진행됨
>> byte의 array를 만들어서 1byte가 아니라 더 많은 byte를 읽어들이면 파일 복사 효율 증대
# 코딩 #
- 이전에 만들었던 클래스에서 이어서 method 작성!
/**
* 8bit Stream 사용하여 text 파일 쓰기
*
* @throws IOException
*/
public void usestream3() throws IOException {
File inFile = new File("C:/Users/user/Desktop/java_test.txt"); // 읽어올 파일
File outFile = new File("C:/Users/user/Desktop/java_output_test.txt"); // 작성할 파일
FileInputStream fis = new FileInputStream(inFile); // 파일에 스트림 연결
FileOutputStream fos = new FileOutputStream(outFile); // 파일에 스트림 연결
int val = 0;
while ((val = fis.read()) != -1) { // 읽어들일 데이터가 없을 때까지 while 실행
fos.write(val); 읽어들인 데이터를 val에 넣고 새 파일에 write
}
fis.close(); // 스트림 닫자!
fos.close();
}// usestream3
# 출력 결과 #
새로운 파일이 복사되었고 test 문장이 잘 나왔다!
2. 16bit Stream 활용
- 이번에는 한글을 작성해보자
- 한글은 16bit Stream 이용해야함!
- Java에서 기본형 데이터형의 경우에는 flush()를 하지 않더라도 Stream에 있는 데이터가 HDD로 나가지만,
다른 데이터의 경우에는 꼭 flush()를 해주어야 함!!
# 코딩 #
/**
* 16bit Stream 사용하여 text 파일 쓰기
*
* @throws IOException
*/
public void usestream4() throws IOException {
File file = new File("C:/Users/user/Desktop/java_output_test2.txt"); // 생성할 파일
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.write("안녕하세요");
bw.flush(); // 데이터 내보내기
bw.close(); // 스트림 닫자
}// usestream4
# 출력 결과 #
한글도 데이터 내보내기 완료!
'Java' 카테고리의 다른 글
[Java] ObjectStream 활용 - 객체 내보내기 & 객체 읽기 (0) | 2021.09.03 |
---|---|
[Java] 직렬화(Serializable) / transient / ObjectStream / serialVersionUID (0) | 2021.09.01 |
[Java] IO Stream 활용 (1) - 파일 읽기 (0) | 2021.08.30 |
[Java] IO(Input/Output) Stream - 8bit Stream, 16bit Stream / File Class (0) | 2021.08.29 |
[Java] Exception Handling - throws / throw / 사용자 정의 예외처리 Class (0) | 2021.08.26 |
Comments