[JAVA] 자바 - RandomAccessFile / PrintWriter / BufferedWriter
by mini_min[JAVA]
자바 - RandomAccessFile / PrintWriter / BufferedWriter
✔️ RandomAccessFile
- 랜덤 액세스 파일에 읽기 와 쓰기 모두를 지원하는 클래스이다.
- 파일 출력은 포인터 위치부터 시작! 일련의 바이트를 출력하고 바이트만큼 포인터를 이동한다.
- 필요한 바이트 수를 읽어내기 전에 파일 끝에 도달하면 EOFException 발생한다.
✨ rw : 읽기 와 쓰기 모두 가능한 구조 라는 뜻
RandomAccessFile raf = null;
byte b;
try {
raf = new RandomAccessFile("demo.txt", "rw");
for(int i=65; i<=90; i++) {
raf.write(i);
}
raf.seek(5); //5개를 건너뛰고 읽어라
b = raf.readByte();
System.out.write(b);
raf.seek(10); //무조건 처음부터 시작함! 처음에서부터 10개부터 시작임
b = raf.readByte();
System.out.write(b);
System.out.flush();
System.out.println();
for(int i=0; i<(int)raf.length(); i++) {
raf.seek(i);
System.out.print((char)raf.readByte());
}
System.out.println();
✔️ PrintWriter / PrintStream
- PrintWriter : 문자를 출력하기 (문자 스트림)
- PrintStream : 바이트 스트림
PrintWriter pw = new PrintWriter(System.out, true);
pw.print("자바");
pw.print("오라클");
pw.println("웹");
💡 PrintWriter 에서 true 옵션을 주면 flush 호출하거나 마지막에 println 호출하면 출력된다.
✔️ BufferedWriter
- BufferedWriter : 다른 출력 스트림을 생성자의 인자로 받아 생성한다.
문자를 버퍼링 하는 것에 따라 문자, 배열 또는 스트링을 문자 형태로 출력 스트림에 출력한다.
✨ write() : 문자열 출력도 가능
✨ newLine() : 라인을 넘김
// 파일에 내용을 저장하기 위한 BufferedWriter 객체 생성
BufferedWriter bw = new BufferedWriter(new FileWriter("파일명.확장자"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s;
//문자를 버퍼링하여 문자 출력 스트림에 텍스트를 저장한다.
try( BufferedWriter bw = new BufferedWriter(new FileWriter("ex.txt")) ) {
System.out.println("문자열 입력[종료 : ctrl+z] ");
while((s=br.readLine())!= null) {
bw.write(s);
bw.newLine();
}
bw.flush();
'Java' 카테고리의 다른 글
[JAVA] 자바 - 스레드 (Thread) 개념 (0) | 2022.09.01 |
---|---|
[JAVA] 자바 - DataOutputStream / BufferedReader 버퍼 크기 주기 (0) | 2022.08.30 |
[JAVA] 자바 - 입출력 스트림 요약 (바이트 스트림 / 문자 스트림) (0) | 2022.08.30 |
[JAVA] 자바 - 파일 확장자 바꿔서 저장하기 (0) | 2022.08.29 |
[JAVA] 자바 - 파일 정보/파일명/경로 등 출력하기 (+폴더 만들기/지우기/폴더 이름변경) (0) | 2022.08.29 |
블로그의 정보
개발자 미니민의 개발로그
mini_min