
상대 경로 : 실행되는 위치(프로젝트 폴더)를 기반으로 경로를 정하는 것
절대 경로 : 루트에서 부터 경로를 찾는 것
파일을 실행하면 src에 있는 파일이 아니라 out에 있는 파일을 찾아 실행
툴마다 실행 위치가 다름 : jvm위치
실행 > 컴파일 된 후에 파일이 out에 생성됨
자바에서 실행이 되는 context는 프로젝트 : 스터디 내부에서 실행
윈도우의 경우 - 최상위 경로로 시작 : c드라이브 내부 표현에 \사용
c:\workspace\hello.txt
맥, 리눅스의 경우 - \로 시작함
\workspace\hello.txt
툴에서 경로 찾는 방법


상대 경로 확인


경로를 바꿔도 툴에서만 변경되니 변경하지 말 것
이스케이프 문자 - 자바에서 \는 문법의 키워드로 보지 말라는 것
ex) “ \”문자열”\”
주소를 입력할때는 \를 두번 사용해야 인식됨
package ex15;
// 상대 경로 : 내 파일의 위치를 기반으로 경로를 정하는 것
// 절대 경로 : 루트에서부터 경로를 찾는 것
// 윈도우 : c:\workspace\hello.txt
// 맥, 리눅스의 경로 : \workspace\hello.txt
public class StreamEx05 {
public static void main(String[] args) {
System.out.println("안녕 난 \"홍길동\"이야");
System.out.println("c:\\workspace\\hello.txt");
}
}

절대 경로로 찾기
package ex15;
import java.io.BufferedReader;
import java.io.FileReader;
public class StreamEx05 {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader("D:\\workspace\\java_lec\\study\\out\\production\\study\\ex15\\hello.txt"));
String line = br.readLine();
System.out.println(line);
} catch (Exception e) {
e.printStackTrace();
}
}
}

절대 경로 - D:\\workspace\\java_lec\\study\\out\\production\\study\\ex15\\hello.txt
상대 경로로 찾기
package ex15;
import java.io.BufferedReader;
import java.io.FileReader;
// 상대 경로 : 내 파일(.class)에 위치를 기반으로 경로 정하는 것 - 일반적
// 절대 경로 : 루트에서 부터 경로를 찾는것
// 윈도우 : 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\\out\\production\\study\\ex15\\hello.txt"));
BufferedReader br = new BufferedReader(new FileReader("src\\ex15\\hello.txt"));
String line = br.readLine();
System.out.println(line);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package ex15;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
// 상대 경로 : 실행되는 위치(프로젝트폴더) 기반으로 경로 정하는 것
// 절대 경로 : 루트에서 부터 경로를 찾는것
// 윈도우 : 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"));
String line = br.readLine();
System.out.println(line);
BufferedWriter bw = new BufferedWriter(new FileWriter("input.txt"));
bw.write("안녕");
bw.write("반가워\n");
bw.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}
일반적 경로 - D:\workspace\java_lec\study
연습문제
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("D:\\workspace\\java_lec\\study\\src\\ex15\\input.txt"));
outputStream = new PrintWriter(new FileWriter("D:\\workspace\\java_lec\\study\\src\\ex15\\output.txt"));
String line;
while ((line = inputStream.readLine()) != null) {
outputStream.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

Share article