반응형
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
- interrupt()
- first-child
- 표현 언어
- 메모리스트림
- char[] String 형변환
- 상관서브쿼리
- include액션태그
- 상관 서브 쿼리
- Linux세팅
- ThreadGroup()
- ObjectInputStream
- StringWriter
- Linux셋팅
- 스레드그룸
- InputDialog
- sleep()메소드
- isinterrupted()
- ID중복
- StringReader
- interrupted()
- 아이디중복
- 리눅스세팅
- Daemon()
- String char[] 형변환
- 리눅스셋팅
- 동기화
- first-of-child
- include 지시자
- include지시자
- MemoryStream
Archives
- Today
- Total
다연이네
[days25] FileOutputStream을 이용해 파일 만들기 본문
반응형
1. 문자열 입력받아 파일 만들기
package test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Re02 {
public static void main(String[] args) {
// OutputStream : 바이트 스트림의 최상위 부모 클래스
// 파일로 저장하는 역할 (저장=쓰기=출력)
InputStream is = System.in;
OutputStream os = null;
String path = "dayeon_Review.dat";
byte buffer[] = new byte[1024];
try {
System.out.println(">저장할 문자열 입력 ? ");
int n = is.read(buffer); //read로 키보드로 입력받아 buffer에 저장
os = new FileOutputStream(path); //현위치에 path명으로 파일 생성
os.write(buffer, 0, n); //파일에 buffer의 모든 내용 출력
// String 문자열을 FileOutputStream 바이트스트림을 사용해서 저장
// String -> byte로 변환을 시켜야 os.write() 사용 가능
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("=END=");
}
}
* flush 스트림에 쓴 바이트를 물리적으로 옮기는 것 (실제 쓰기 작업)
- 어떤 곳은 flush 안쓰기도 한다 (close만 쓴다)(close만 써도 내부적으로 flush가 일어나긴하나, 정확히 알아두기)
* close 다른 사람을 위해 자원 해제 - 리소스는 클로즈 필수
2. 고정된 문자열(입력받지 않고) 파일로 만들기
package test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Re03 {
public static void main(String[] args) {
String message = "동주나 뭐해 ? ";
String path = "doonjjun.dat";
OutputStream os = null;
//String -> byte[] 로 변환해야지 os.write 사용 가능
//message -> buffer 작업 필요
try {
os = new FileOutputStream(path);
byte buffer[] = message.getBytes(); //String => byte[]
for (int i = 0; i < buffer.length; i++) {
os.write(buffer[i]); // 버퍼의 모든 문자 쓰기
}
os.flush();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("=END=");
}
}
반응형
'Java' 카테고리의 다른 글
[days25] File 객체 (0) | 2020.10.25 |
---|---|
[days25] 파일 복사하기 (1. 실행파일 2.txt파일) (0) | 2020.10.25 |
[days24] InputStream - 사진 정보 2진수로 출력 / 바이트씩 읽기 / String입력받기 (0) | 2020.10.24 |
[days24] 자바 입출력(I/O) 이론 개념 (0) | 2020.10.23 |
[days24] Annotation (0) | 2020.10.23 |
Comments