본문 바로가기
Backend/JAVA

[JAVA] 파일 읽기, 쓰기 (한글 가능)

by 그적 2022. 10. 24.

JAVA 8 에서 파일 읽는 방법

 

파일 읽기

FileInputStream fileInputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader reader = null;

String file = "(파일 절대 경로 + 파일명)";
# 혹은 File file = new File(file);
# FileInputStream 인자로 경로(String), 파일(File) 둘다 가능

try{
	fileInputStream = new FileInputStream(file);
	inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
	reader = new BufferedReader(inputStreamReader);

	String str = null;
	while ((str = reader.readLine()) != null) {
		System.out.println(str);
	}
    
}catch(IOException e){
	System.out.println(e);
}finally{
	fileInputStream.close();
	inputStreamReader.close();
	reader.close();
}

- FileInputStream : 파일에서 바이트 스트림을 읽음.

- InputStreamReader : 바이트 스트림에서 문자 스트림으로 연결, 따라서 이때 utf-8로 인코딩 필요
                                     1바이트씩 읽기 때문에 효율성을 위해서는 BufferedReader와 같이 사용하는 것을 권장함.

- BufferedReader : 문자를 효율적으로 읽을 수 있도록 도와줌.

 

 

파일 쓰기

FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter writer = null;

String file = "(파일 절대 경로 + 파일명)";
# 혹은 File file = new File(file);
# FileOutputStream 인자로 경로(String), 파일(File) 둘다 가능

try{
	fileOutputStream = new FileOutputStream(file);
	outputStreamWriter = new outputStreamWriter(fileOutputStream, "utf-8");
	writer = new BufferedWriter(outputStreamWriter);
    
	writer.write("작성");
	writer.newLine();
	writer.flush();
    
}catch(IOException e){
	System.out.println(e);
}finally{
	fileOutputStream.close();
	outputStreamWriter.close();
	writer.close();
}

** 파일 읽을 때 사용한 클래스들과 매칭됨.

- FileOutputStream : 파일에서 바이트 스트림을 씀.

- OutputStreamReader : 문자 스트림에서 바이트 스트림으로 연결, 따라서 이때 utf-8로 인코딩 필요
                                     1바이트씩 읽기 때문에 효율성을 위해서는 BufferedWriter와 같이 사용하는 것을 권장함.

- BufferedWriter : 문자를 효율적으로 읽을 수 있도록 도와줌.

 

 

댓글