개발자 미니민의 개발스터디

[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();

 

 

 

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기