본문 바로가기

Java

[Java] 36

​● FileReader

- Stream을 여는데 사용하는 클래스

- 생성자의 매개변수로는 File 객체를 알려준다.

BufferedReader

- 버퍼를 생성하는데 사용하는 클래스

- 생성자의 매개변수로는 FileReader 객체를 알려준다.

readLine()

- 파일 속 한 줄을 문자열로 읽어온다.

- 더 이상 읽어올 문자열이 없다면 null값을 return한다.

파일 경로

- 파일 경로에 파일이 없을 경우에는 파일을 만들어준다.

- 기본 경로는 해당 프로젝트 폴더 안으로 설정되어있다.

1. 절대경로

- 처음부터 끝까지 파일 경로를 알려주는 방법

(ex) File("C:\\Java\\memo\\test.txt")

2. 상대경로

- 프로젝트 위치에 따라 달라진다.

- 기본 위치는 본인 프로젝트 폴더로 설정되어있다.

(ex) File("..\\..\\memo\\test.txt");

..\\ : 상위 폴더를 의미한다.

 


 

실습(파일 출력(1))

0. 파일 객체 만들기

File f = new File("task.txt");  // 없는 경로를 작성하면 FileNotFoundException 오류가 발생한다.
FileReader fr = null;
BufferedReader br = null;

 

1. 파일 데이터가 전송될 수 있도록 Stream 열어주기

fr = new FileReader(f);

 

1-2. 버퍼 생성하기

br = new BufferedReader(fr);

 

2. 반복문을 이용하여 파일 읽기

- line의 초기화 값을 br.readLine();로 설정한 후 반복문 진행하기

String line = br.readLine();
while(line != null) {
	System.out.println(line);
	line = br.readLine();
}

 

- line의 초기화 값을 ""(공백)으로 설정한 후 반복문 진행하기

String line = "";
	while((line = br.readLine()) != null) {
	System.out.println(line);
}

 

3-0. 버퍼 닫기

if(br != null) br.close();

 

3. Stream 닫기

if(fr != null) fr.close();

 

※ 전체 코드

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileReadTest {
	public static void main(String[] args) {

		// 파일 객체 만들기
		File f = new File("task.txt");  // 없는 경로를 작성하면 FileNotFoundException 오류가 발생한다.
		FileReader fr = null;
		BufferedReader br = null;
		
		try {
			// 스트림 열기
			fr = new FileReader(f);
			
			// 버퍼 생성하기
			br = new BufferedReader(fr);
			
			// 파일 읽기
			String line = br.readLine();
			while(line != null) {
				System.out.println(line);
				line = br.readLine();
			}
			
//			String line = "";
//			while((line = br.readLine()) != null) {
//				System.out.println(line);
//			}
			

		} catch (FileNotFoundException e) {
			// FileNotFoundException은 IOException으로 한 번에 잡아줄 수 있다.
			System.out.println("파일 없음");
			
		} catch(IOException e) {
			
		} finally {
			try {
				if(br != null) br.close();
				if(fr != null) fr.close();
				
			} catch (IOException e) {
				e.printStackTrace();
			}
		}


	}

}

 

결과

 

 

​​

실습(파일 출력(2))

- FileRead.txt 파일을 콘솔창에 출력하시오

0. "..\\..\\memo" 경로에 "FileRead.txt" 생성한 후 아래 내용 저장하기

FileReadTask
FileReadTask
FileReadTask

 

1. 파일 객체 만들기

File f = new File("..\\..\\memo\\FileRead.txt");
FileReader fr = null;
BufferedReader br = null;

 

2. 파일 데이터가 전송될 수 있도록 Stream 열어주기

fr = new FileReader(f);

 

2-2. 버퍼 생성하기

br = new BufferedReader(fr);

 

3. 반복문을 이용하여 파일 읽기

String line = null;
	while((line = br.readLine()) != null) {
		System.out.println(line);
	}

 

4-0. 버퍼 닫기

if(br != null) br.close();

 

4. Stream 닫기

if(fr != null) fr.close();

 

※ 전체 코드

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileReadTask {

	public static void main(String[] args) {
	
		File f = new File("..\\..\\memo\\FileRead.txt");
		FileReader fr = null;
		BufferedReader br = null;
		
		try {
			fr = new FileReader(f);
			br = new BufferedReader(fr);
			
			String line = null;
			while((line = br.readLine()) != null) {
				System.out.println(line);
			}
			
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			
		} catch (IOException e) {
			
		} finally {
			try {
				if(br != null) br.close();
				if(fr != null) fr.close();
				
			} catch (IOException e) {
				e.printStackTrace();
			}
		}


	}

}
 
결과

 

'Java' 카테고리의 다른 글

[Java] 38  (0) 2022.02.12
[Java] 37  (0) 2022.02.10
[Java] 35  (0) 2022.02.06
[Java] 34  (0) 2022.02.05
[Java] 33  (0) 2022.02.03