반응형
파일 입출력이란?
- 지금까지 해왔던 System.out.println()나 Scanner등과 같이 화면으로 입력, 출력을 하는것이 아닌 파일을 통해 입력과 출력을 하는 것
파일 경로
- 파일의 경로를 표현하는 방법에는 2가지가 있음 => 절대경로, 상대경로
- 절대경로는 C:\Program Files\Java 이런 식의 주소 표현하는 방법
- 상대경로는 특정 파일이나 폴더를 기준으로 상대적으로 주소를 표현하는 방법
- 상대경로를 표현할 때는 / ./ ../ 을 사용
- ex) C:\Program Files\Java\a.txt에서 상대경로 표현 시
- / => 루트 => C:\
- ./ => 현재 폴더 => C:\Program Files\Java
- ../ => 상위 폴더 => C:\Program Files
파일 입출력 예제
- 현재 디렉토리의 input.txt를 읽어와 output.txt에 출력하는 예제
- 파일 입출력을 하는 방법으로는 여러가지 방법이 있지만, 그 중에서 입력은 BufferedReader, 출력은 PrintWriter을 사용
< Main.java >
package FILEIO;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.PrintWriter;
import java.io.FileWriter;
public class Main {
public static void main(String[] args) throws IOException {
String path = System.getProperty("user.dir") + "\\src\\FILEIO\\";
// System.getProperty("user.dir")을 통해
// 현재 working dir까지 가져오고 그 뒤에 경로는 따로 추가해 줌
System.out.println(path);
BufferedReader br = new BufferedReader(new FileReader(path + "input.txt"));
PrintWriter pw = new PrintWriter(new FileWriter(path + "output.txt"));
// new FileReader("D:\\eclipse-workspace\\JavaStudy\\src\\FILEIO\\input.txt")
// 이런식으로 전체 경로를 다 써줘도 됨
String str;
while(true) {
str = br.readLine(); // BufferedReader을 이용해 한 줄 씩 불러오기
if(str == null) break;
pw.println(str); // PrintWriter을 이용해 한 줄 씩 출력하기
}
br.close();
pw.close();
}
}
결과
반응형
'JAVA > 기본 문법' 카테고리의 다른 글
[JAVA] 우선순위 큐 (Priority Queue), 정렬 전략 설정법 (0) | 2022.05.28 |
---|---|
[JAVA] BufferedReader, BufferedWriter, StringBuilder (0) | 2022.05.24 |
[JAVA] 화면 입력 받기 (Scanner) (0) | 2022.04.18 |
[JAVA] 시간 관련 ( 시간측정, 현재날짜/시간, 날짜/시간 포맷, 타이머 ) (0) | 2022.04.14 |
[JAVA] 쓰레드 (Thread), SingleThread, MultiThread 예제 (0) | 2022.04.14 |