Back-End/JAVA

[Java] 파일 입출력

챌링킴 2021. 6. 2. 21:51
반응형

1) 파일입출력

 

1. writer(입력)

   FileWriter > BufferedWriter > 파일에 입력

 

   FileWriter : 경로에 있는 파일 가져오기( 쓰기 위해서 )

   * 파일이 없는 경우에는 그 이름대로 파일을 생성한다.

   * 하지만 경로가 이상한 경우에는 ( 폴더가 잘못된 폴더인 경우 ) 폴더를 생성해주지 않고 예외가 발생한다.

   new FileWriter("파일경로/파일명.확장자")       : 덮어쓰기 모드

   new FileWriter("파일경로/파일명.확장자",true) : 추가 모드

 

   BufferedWriter : 버퍼를 이용해서 파일 작성

   bw.write("문자열") : 버퍼에 문자열 쓰기

   bw.close( )           : 파일에 적용 / 버퍼에 있는 데이터들을 실제 파일에 써주면서 버퍼 닫기

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

public class WriterTest {
	public static void main(String[] args) throws IOException {
//		System.out.println("파일쓰기 준비 시작");
//		FileWriter fw = new FileWriter("test.txt"); // test.txt에다가 파일을 써줄게 라는 의미
//		System.out.println("파일 준비 완료");
//		System.out.println("버퍼 준비 시작");
//		BufferedWriter bw = new BufferedWriter(fw);
//		System.out.println("버퍼 준비 완료");
//		bw.write("Hello Java!");
//		bw.write("Hello Web!");
//		bw.close();

		// 추가모드로 열기
		FileWriter fw = new FileWriter("test.txt", true);
		BufferedWriter bw = new BufferedWriter(fw);
		bw.write("Hi");
		bw.write("\r\nHello"); // \r\n : Enter의 조합
		bw.close();
	}
}

 

2. Reader(출력)

   FileReader > BufferedReader > 파일에서 출력

 

  FileReader : 경로에 있는 파일 가져오기( 읽기 위해서 )

  * 파일이 없으면 예외 발생(FNFE)

 

  BufferedReader : 버퍼를 이용해서 파일 읽기

 

  br.readLine( ) : 메모장 한줄 읽어오기( 읽어온 줄이 없다면 null ) 

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

public class ReaderTest {
	public static void main(String[] args) {
		try {
			FileReader fr = new FileReader("test.txt");
			BufferedReader br = new BufferedReader(fr);
			while (true) {
				String line = br.readLine();
				if (line == null) {
					break;
				}
				System.out.println(line);
			}
		} catch (FileNotFoundException fnfe) {
			System.out.println("파일을 찾지 못했습니다.");
		} catch (IOException ioe) {
			System.out.println("파일 읽기 오류");
		}
	}
}
반응형

'Back-End > JAVA' 카테고리의 다른 글

[Java] 웹 크롤링(실시간 데이터 수집, Web Crawling), 설치·실행하기  (1) 2021.06.21
[Java] MVC 모델  (0) 2021.06.03
[Java] Thread(쓰레드)  (0) 2021.06.01
[Java] 빠른 for문  (0) 2021.06.01
[Java] HashMap  (0) 2021.06.01