052_상대 경로와 절대 경로

Jan 09, 2024
052_상대 경로와 절대 경로

상대 경로

  • 실행되는 위치(일반적으로 프로젝트 폴더)를 기반으로 경로를 정하는 것이다.
  • 현재 작업 중인 디렉토리를 기준으로 상대적인 위치이다.
  • 상대 경로 예시
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
RSSPowered by inblog