상대 경로
- 실행되는 위치(일반적으로 프로젝트 폴더)를 기반으로 경로를 정하는 것이다.
- 현재 작업 중인 디렉토리를 기준으로 상대적인 위치이다.
- 상대 경로 예시
BufferedReader br = new BufferedReader(new FileReader("D:\\workspace\\java_lec\\study\\src\\ex15\\hello.txt"));
절대 경로
- 루트에서 부터 경로를 찾는 것을 말한다.
- 파일이나 폴더의 전체 경로이다.
- 절대 경로 예시
BufferedReader br = new BufferedReader(new FileReader("src\\ex15\\hello.txt"));
파일 읽기와 파일 쓰기
1. 파일 읽기는 생성되어 있는 파일을 읽어오는 과정이다!
→ 코드로는
PrintWriter(new FileWriter("output.txt"));
를 사용한다!
2. 파일 쓰기는 파일을 생성하는 과정이다!
→ 코드로는 BufferedReader(new FileReader("input.txt"));
를 사용한다!
위의 코드는 예시 코드이다!윈도우와 맥은 서로 경로를 찾을 때 차이점이 있는데?!
윈도우 : C:\\workspace\\hello.txt (윈도우의 역슬래시는 이스케이프 문자라 두 개를 입력)
맥, 리눅스 : /workspace/hello.txt
윈도우는 역슬래시! 맥, 리눅스는 슬래시! 를 사용한다!
예제 코드
- 기본 예제 코드 1
package ex15; import java.io.*; // 상대 경로 : 실행되는 위치(일반적으로 프로젝트 폴더)를 기반으로 경로를 정하는 것 (내 파일을 out의 파일에서 찾는다!) // 절대 경로 : 루트에서 부터 경로를 찾는 것 (아래의 파일 경로) // 윈도우 : C:\\workspace\\hello.txt // 맥, 리눅스 : /workspace/hello.txt // 상대 경로와 절대 경로의 차이점을 명확하게 알고 접근 해야한다. 타겟 설정의 실수가 나지 않도록 해야 하기 때문이다. public class StreamEx05 { public static void main(String[] args) { try { //BufferedReader br = new BufferedReader(new FileReader("D:\\workspace\\java_lec\\study\\src\\ex15\\hello.txt")); // 절대 경로 BufferedReader br = new BufferedReader(new FileReader("src\\ex15\\hello.txt")); // 상대 경로 BufferedWriter bw = new BufferedWriter(new FileWriter("input.txt")); bw.write("안녕 반가워\n"); bw.flush(); String line = br.readLine(); System.out.println(line); } catch (Exception e) { e.printStackTrace(); } } }
- 기본 예제 코드 2
package ex15; import java.io.*; public class CopyLines { public static void main(String[] args) throws IOException { BufferedReader inputStream = null; PrintWriter outputStream = null; try { inputStream = new BufferedReader(new FileReader("input.txt")); // FileReader에 BufferedReader를 연결한다. outputStream = new PrintWriter(new FileWriter("output.txt")); // FileWriter의 출력이 PrinterWriter의 입력이 된다. String l; while ((l = inputStream.readLine()) != null) { // 한 줄 단위로 입출력할 수 있다. outputStream.println(l); } } finally { if (inputStream != null) { inputStream.close(); } if (outputStream != null) { outputStream.close(); } } } }
Share article