관리 메뉴

Legday

[Java] 파일 입출력 본문

Java

[Java] 파일 입출력

Legday 2022. 8. 22. 17:49

코드설명

우선 파일을 입력할때 FileWriter , BufferedWriter 를 이용하고 파일을 읽을 때는 FileReader,BufferedReader 를 이용

그리고 FileWriter클래스의 2번째 매개변수는 boolean형식인데 이는 파일을 다시 읽을때 덮어쓰냐(false), 이어쓰냐(true)의 결정이다. 기본값은 false

그리고 write메서드를 이용해 입력을 하면 반드시 flush()함수로 비워줘야 한다. 그래야 다음 데이터를 버퍼에 전송가능함

 

그리고 출력할때는 while문을 이용하여서 String객체에 readline으로 이용해 데이터를 빼오고 이값이 null(빈값) 일때까지 출력을 하게 하면 된다.

 

입출력 문에서 항상 try-catch 문을 쓰자

package communication;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;


public class FileEx01 {

	public static void main(String[] args) {

		File file = new File("src/communication/tsetFile.txt"); //상대경로로 파일생성
		try {
			// ./현재경로
			// ../바로 위폴더
			// / 최상위폴더
			FileWriter fw = new FileWriter(file,true); //2번째 값이 true면 새로 컴파일할때 이어쓴다.(defalut 값은 false 덮어쓰기다)
			BufferedWriter bw = new BufferedWriter(fw); //BufferedWriter를 이용해 쓰고,읽을 예정

			bw.write("ㅎㅇ"); //"ㅎㅇ"입력
			bw.newLine(); //엔터키
			bw.flush(); //버퍼에있는 내용을 다읽어서 버퍼를 비워둔다.
			
			FileReader fr = new FileReader(file); //
			BufferedReader br = new BufferedReader(fr);
			String str = new String();
			
			while((str=br.readLine())!=null) {
				System.out.println(str);
			}			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

}