์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค/๋ฐฉ๋ฒ•

์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋Š” ํŠน์ • ๊ด€๋ จ ์ž‘์—… ๋ชฉ๋ก์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ •์  ๋ณ€์ˆ˜ ๋ฐ ์ •์  ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ๋„์šฐ๋ฏธ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

ํ‘œ์ค€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์˜ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

java.lang.์ˆ˜ํ•™ ๋‹ค์–‘ํ•œ ์ˆ˜ํ•™์  ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํด๋ž˜์Šค๋Š” ๋ช‡ ๊ฐ€์ง€ ์ˆ˜ํ•™์  ์ƒ์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
java.util.๋ฐฐ์—ด ์ด ํด๋ž˜์Šค์—๋Š” ๋ฐฐ์—ด ์ž‘์—…์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ(์˜ˆ: ๋ฐฐ์—ด ์ •๋ ฌ ๋ฐ ๊ฒ€์ƒ‰)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค์—๋Š” ๋ฐฐ์—ด์„ ๋ชฉ๋ก์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ •์  ํŒฉํ„ฐ๋ฆฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
java.lang.์‹œ์Šคํ…œ ์ด ํด๋ž˜์Šค๋Š” ์‹œ์Šคํ…œ ์ž‘์—…์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ ์ฝ˜์†”์— ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ •์ ์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.๋ฐ–์œผ๋กœPrintStream ๊ฐœ์ฒด๋ฅผ ์ €์žฅํ•˜๊ณ  ํ•ด๋‹น println ๋ฉ”์„œ๋“œ( System.out.println ) ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค .

์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ํ•„์š”ํ•œ ์ •์  ๊ณต์šฉ ๋ฉ”์„œ๋“œ ๊ฐ€ ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค . ๊ทธ๋Ÿฌ๋‚˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ์—๋Š” ํƒ€๋‹นํ•œ ์ด์œ ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ๋‹จ์ผ ์ž‘์—…(์˜ˆ: ๋ณต์žกํ•œ ๊ณ„์‚ฐ)์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ ๋ฉ”์„œ๋“œ ๋˜๋Š” ๋ฉ”์„œ๋“œ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์ธ Paths ํด๋ž˜์Šค ์˜ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค .

๊ฒฝ๋กœ ํด๋ž˜์Šค

์ด ํด๋ž˜์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์ด ์žˆ๋Š” ๋‘ ๊ฐ€์ง€ ๋ณ€ํ˜•์ด ์žˆ๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ •์  get ๋ฉ”์„œ๋“œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

get ๋ฉ”์„œ๋“œ ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

get(๋ฌธ์ž์—ด ์šฐ์„ , ๋ฌธ์ž์—ด... ๋” ๋ณด๊ธฐ) ์ „์ฒด ๊ฒฝ๋กœ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„ ๋ชฉ๋ก ๋ฐ/๋˜๋Š” ๋งˆ์ง€๋ง‰ ์ธ์ˆ˜์˜ ํŒŒ์ผ.
get(URI ์šฐ๋ฆฌ) URI.

์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋Š” ๊ฒฝ๋กœ(๋ฌธ์ž์—ด ํ˜•์‹) ๋˜๋Š” URI๋ฅผ Path๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•ฉ๋‹ˆ๋‹ค . ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ Path๋ฅผ ์‚ดํŽด๋ณด์•˜๊ณ  Path ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ์™€ Path๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ต๋กญ๊ฒŒ๋„ ์šฐ๋ฆฌ๋Š” ์ข…์ข… ๋ฌธ์ž์—ด ์ด๋‚˜ URI ํ˜•์‹์˜ ๊ฒฝ๋กœ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ Paths ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ ๋…ผํ‰

Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
                    
get ๋ฉ”์„œ๋“œ์— String(ํŒŒ์ผ ๊ฒฝ๋กœ)์„ ์ „๋‹ฌ ํ•˜๊ณ  Path ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค . ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•„์š”์— ๋”ฐ๋ผ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
                    
๊ฒฝ๋กœ ๋Š” URI์—์„œ๋„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
                    
๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์˜ ์ˆœ์„œ์™€ ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•œ ํŒŒ์ผ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์—๋Š” ์ฃผ์˜ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Java 11์ด ์ถœ์‹œ๋˜๋ฉด์„œ get ๋ฉ”์„œ๋“œ์˜ ๋ชจ๋“  ๊ตฌํ˜„์€ Path.of ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค .


public static Path get(String first, String... more) {
    return Path.of(first, more);
}
 
public static Path get(URI uri) {
    return Path.of(uri);
}
    

์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์„ ์–ธ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋Œ€์‹  Path.of๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค .

์ „์— ํ›„์—

Path path =
Paths.get("C:\\Users\\User\\Documents\\MyFile.txt");
                    

Path path =
Path.of("C:\\Users\\User\\Documents\\MyFile.txt");
                    

Path path = Paths.get(URI.create("file:///Users/User/Code/MyClass.java"));
                    

Path path = Path.of(URI.create("file:///Users/User/Code/MyClass.java"));
                    

Path path = Paths.get(System.getProperty("user.home"),"documents", "document.txt");
                    

ath path = Path.of(System.getProperty("user.home"),"documents", "document.txt");