본문 바로가기

JAVA/JAVA TIP

JAVA txt(file) 불러오기 및 추가 방법

 

기본적으로 텍스트 파일을 불러오는 방법은 매우 간단합니다.

 

파일 불러오기 -> 파일 읽기 -> 저장 및 출력 

저는 이렇게 3단계로 분류하는데 하나씩 살펴볼게요.

 

 

File note = new File("C:/Users/user/Desktop/js/note.txt");

첫 번째 파일 불러오기입니다.

해당 메모장의 경로를 입력해주시면 불러오기가 가능합니다.

이 코드를 복사하거나 입력하시면 File 부분이 빨간색으로 나올 텐데 걱정 마시고 마우스를 올린 뒤 import 해주시면 됩니다.

 

import java.io.File;

그러면 맨 위 패키지 아래 import 된 걸 보실 수 있어요.

 

 

BufferedReader br = new BufferedReader(new FileReader(note));

두 번째 파일 읽기입니다.

이 코드도 위 불러오기와 마찬가지로 빨간 줄이 뜨면 import 해주시면 됩니다. 

import를 했는데 계속 빨간색이 남아 있을 겁니다. 마우스를 올려보면 try/catch를 하라고 나와있습니다.

 

try/catch는 예외처리입니다. 예외처리에 대해서는 좀 더 나중에 다루도록 할게요.

지금은 오류가 나야 하는 부분을 예외 처리해서 사용할 수 있도록 만든다고 생각하시면 됩니다.

 

불러오기에서 선언한 note를 fileReader에 넣음으로써 해당 경로의 메모장을 읽어 올 수 있게 됐습니다.

 

 

 

String str = br.readLine();

System.out.println(str);

세 번째 저장 및 출력입니다.

br.readLine 은 메모장을 문자열로 읽어 온다는 뜻입니다.

문자열로 읽어온 값을 str에 대입하고 콘솔로 출력하는 코드입니다.

 

 

 

 

 

이렇게 3가지로 분류해봤고 이제 합쳐진 코드를 볼게요.

 

	File note = new File("C:/Users/user/Desktop/js/note.txt");
		try{
		        BufferedReader br = new BufferedReader(new FileReader(note));
		        String str = br.readLine();
                
                	System.out.println(str);
		        
		        br.close();
		} catch (NullPointerException e){ // null이 있을 경우
			e.getStackTrace();
		} catch (FileNotFoundException e){ // 파일을 찾을 수 없는 경우
			e.getStackTrace();
		} catch (IOException e){ // 파일 읽기 중 에러가 발생한 경우
			e.getStackTrace();
		}

try/catch는 이렇게 예외 하는 데 사용한다고 생각하시면 됩니다.

 

note메모장에 A , B , C 가 있을 경우 위 코드는 A만 가져옵니다.

당연히 한 번만 읽었으니 당연한 결과입니다.

 

 

File note = new File("C:/Users/user/Desktop/js/note.txt");
		try{
		        BufferedReader br = new BufferedReader(new FileReader(note));
		        String str = br.readLine(); // 변수 선언과 첫번째 문자열 대입
                    	while(str != null){ // 읽어오는 문자열이 null이 나올때까지 루프

                          	System.out.println(str); // 출력
                          	str = br.readLine(); // 메모장 다음 문자열 읽기
                      }

		        br.close();
		} catch (NullPointerException e){ // null이 있을 경우
			e.getStackTrace();
		} catch (FileNotFoundException e){ // 파일을 찾을 수 없는 경우
			e.getStackTrace();
		} catch (IOException e){ // 파일 읽기 중 에러가 발생한 경우
			e.getStackTrace();
		}

while문을 사용하면 손쉽게 모든 값을 읽어 올 수 있습니다.

단 여기서도 문제가 있어요. 메모장을 읽기만 한다면 여기서 끝이겠지만 메모장의 값을 사용하기 위해서는

이런 방식으로는 불가능합니다.

srt을 계속 초기화하기 때문에 이전 값을 은 지워지기 때문이에요.

 

ArrayList<String> N_list = new ArrayList<String>(); // 리스트 선언

File note = new File("C:/Users/user/Desktop/js/note.txt");
		try{
		        BufferedReader br = new BufferedReader(new FileReader(note));
		        String str = br.readLine();
                while(str != null){
                	N_list.add(str); ArrayList에 저장
                	str = br.readLine();
                }

		        br.close();
		} catch (NullPointerException e){ // null이 있을 경우
			e.getStackTrace();
		} catch (FileNotFoundException e){ // 파일을 찾을 수 없는 경우
			e.getStackTrace();
		} catch (IOException e){ // 파일 읽기 중 에러가 발생한 경우
			e.getStackTrace();
		}
        
        for(i = 0; i < N_list.size(); i++){ // 저장된 Array의 크기만큼 루프
			System.out.println(N_list.get(i)); // 순서대로 출력
		}

저는 ArrayList를 사용했습니다.

이렇게 리스트에 이전 값도 모두 저장돼있는 걸 보실 수 있습니다.

 

 

 

 

생각보다 쉬운 작업이죠? 저도 처음에는 이게 뭔가 싶었는 데 사용하다 보니 금방 활용을 잘하게 되더라고요.

파일만 불러와서 저장했을 뿐인데 벌써 많은걸 할 수 있게 됐습니다. 문제들을 저장해서 랜덤 하게 풀 수 있는 알고리즘을 만들 수도 있고요. 

 

예외처리도 하다 보면 어렵지 않다는 걸 느끼실 거예요. 

 

 

'JAVA > JAVA TIP' 카테고리의 다른 글

JAVA console Color (콘솔 색상 추가하기)  (0) 2021.11.26
Java 입문 login처리 예제 (1)  (0) 2021.11.08
JAVA txt(file) 불러오기 예제 (split)  (0) 2021.11.08