본문 바로가기
JAVA

[JAVA] IO < 버퍼>, < byte stream>, <Char stream>

by KhyeonS 2022. 8. 8.

버퍼처리하기

 

버퍼에 있는 데이터를 읽기 위한 BufferedReader는 FileReader와 결과는 동일하지만 버퍼드 리더는 Buffer 공간을 할당받아 처리하기 때문에 입출력 속도가 향상된다. 

 

이렇게 버퍼 메모리에 내용을 저장하여 처리 속도를 증가시킬 수 있다.

package java0808;

import java.io.BufferedReader;
import java.io.FileReader;

public class Test07 {

	public static void main(String[] args) {
		FileReader fr = null;
		BufferedReader br = null;
		try {
			fr = new FileReader("C:/Jwork/king.txt");
			br = new BufferedReader(fr);   // king.txt 내용이 버퍼 메모리에 올라감 => 처리속도 증가 
			String msg;
			while ((msg = br.readLine()) != null) {
				System.out.println(msg);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if (fr !=null) {
					fr.close();
				}
				if (br !=null) {
					br.close();
				}
			} catch (Exception e) {
				
			}
		}
	}

}

 


byte stream

package java0808;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;


	public class Test08 {
		public static void main(String[] args) throws IOException {
			File f = new File("C:/Jwork/ByteST.java");
			// 이진 파일을 지정 => ~.java
			FileInputStream fis = new FileInputStream(f);
			BufferedReader br = new BufferedReader(new InputStreamReader(fis));
			// Byte Stream은 줄 단위 처리가 불가능해서 BufferedReader가 있어야함 !!
			String str;
			while ((str = br.readLine()) != null) {
				System.out.println(str);
			}
			if (fis != null) 
				fis.close();
			if (br != null);
				br.close();
		}

	}


FileWriter 파일 쓰기

캐릭터라이트스트림의 라이트를 쓴다.

package java0808;

import java.io.FileWriter;
public class Test09 {

	public static void main(String[] args) {
		FileWriter fw = null; // 파일라이터 객체 생성 후
		try {
			fw = new FileWriter("C:/Jwork/fileW.txt");
			String str = "나는 FileWriter의 예제이다."; // str에 내용을 넣고
			fw.write(str); // str내용을 write로 옮기겠다.
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (fw != null)
					fw.close();
			} catch (Exception e2) {
			}
		}
	}

}


버퍼라이터 예문

버퍼에다가 내용을 쓸 때

package java0808;

import java.io.BufferedWriter;
import java.io.FileWriter;

public class Test10 {

	public static void main(String[] args) {
		FileWriter fw = null;
		BufferedWriter bw = null;
		try {
			fw = new FileWriter("C:/Jwork/bufw.txt");
			bw = new BufferedWriter(fw);
			bw.write("BufferedWrite 테스트");
			bw.newLine(); // 뉴라인은 한 줄씩 아래로 띄우는 메소드. 파일을 쓸 때 \n과 유사한 기능
			// FileWriter로 파일에 입력할때는 끝에 줄바꿈을 넣기 위해 "\r\n"을 꼭 붙여줘야 하는데 \r\n과 유사함!
			bw.write("갑돌이와 갑순이는 한 마을에 살았더래요." + System.getProperty("line.separator"));
// System.getProperty는 문장을 쓸 곳에서 라인의 끝임을 알림. 없어도 되지만 있으면 속도 면에서 처리가 빨라짐 !!
			bw.flush(); // 이를 써 주어야 버퍼의 내용이 실제로 파일에 기록이 되고 버퍼는 비워진다!! 제일 중요!
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (fw != null)
					fw.close();
				if (bw != null)
					bw.close();
			} catch (Exception e) {
			}
		}
	}

}

 

'JAVA' 카테고리의 다른 글

[JAVA] JDBC  (0) 2022.08.09
[JAVA] Server Socket 서버 클라이언트 프로그램 만들기  (0) 2022.08.08
[JAVA]file class  (0) 2022.08.08
[JAVA] IO(Input/Output)  (0) 2022.08.03
[JAVA] 제네릭(Generic)  (0) 2022.08.03

댓글