๊ด€๋ฆฌ ๋ฉ”๋‰ด

ejyoo's ๊ฐœ๋ฐœ ๋…ธํŠธ

JAVA IO - File Class1 - ๋ฆฌ์†Œ์Šค ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ / ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑํ•˜๊ธฐ ๋ณธ๋ฌธ

BackEnd/Java

JAVA IO - File Class1 - ๋ฆฌ์†Œ์Šค ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ / ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑํ•˜๊ธฐ

ejyoovV 2021. 3. 20. 15:11

๐Ÿ“ ์˜ค๋Š˜์€ JAVA IO์— ๋Œ€ํ•˜์—ฌ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ ์ž…์žฅ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ–๊ณ  ์˜ค๋Š” ์ž…์žฅ์ผ ๋•Œ, Input ์ด๋ผ๊ณ  ํ•˜๋ฉฐ

ํ”„๋กœ๊ทธ๋žจ์„ ๋‚ด๋ณด๋‚ผ ๋•Œ Output ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“ ์ง€๊ธˆ๊นŒ์ง€๋Š” Scanner ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Input์€ System.in Output์€ System.out ์œผ๋กœ ์ž‘์—…์„ ํ–ˆ์—ˆ๋Š”๋ฐ์š”.

์ด์ œ๋Š” Stream ๊ฐœ๋…์„ ๋ฐฐ์›Œ์„œ JAVA ๋‚ด ํšจ์œจ์ ์ธ IO ์ž‘์—…์„ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“ IO ์ž‘์—… ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฒฐ๊ตญ ํŒŒ์ผ ์ž‘์—…์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์ €์žฅ๋œ ํŒŒ์ผ์„ ์ฝ์–ด๋“ค์ด๋Š” ์ผ์„ ์ž์ฃผ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿด๋•Œ ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. => ๐Ÿ’ก FileClass

 

๐Ÿ“ FileClass ๋Š” ์ž๋ฐ” IO ๋ฐ‘์— File์ด๋ผ๋Š” ํด๋ž˜์Šค์—์„œ ์ œ๊ณต์„ ํ•ด์ค๋‹ˆ๋‹ค.

 


๐Ÿ“ ๋จผ์ € FileClass์˜ ๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ, ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•) ์„ ๋จผ์ € ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•˜๋“œ ๋””์Šคํฌ ์ƒ์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋‹ค๋ฃจ๋Š” ์ผ์ด ๋งŽ์€๋ฐ,

Java๋ผ๋Š” ์–ธ์–ด๋ฅผ ํ†ตํ•ด์„œ ํŒŒ์ผ์„ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃจ๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Java๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ฏ€๋กœ ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๊ทธ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค๋Š” FileClass์ด๊ณ , ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•ด์ค๋‹ˆ๋‹ค.

 

ํŒŒ์ผ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€. new๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ ํด๋ž˜์Šค ๋‚ด ์˜ค๋ฒ„๋กœ๋“œ ๋œ ์ƒ์„ฑ์ž๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋Š”๋ฐ

์ฒซ๋ฒˆ์งธ๋กœ ์ธ์ž๊ฐ’ String ํ•˜๋‚˜๋งŒ ์ฃผ๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋Š” ๋””์Šคํฌ์ƒ์— ์กด์žฌํ•˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

/๋Š” ์›๋ž˜ ์ •ํ†ต์œผ๋กœ ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ด๋ฉฐ,(์œ ๋‹‰์Šค -> ์ปดํ“จํ„ฐ ๋ณด๊ธ‰ -> ๊ฐœ์ธ์šฉ PC -> ์œˆ๋„์šฐ ์ถœ์‹œ) 

์ด๋•Œ ์œˆ๋„์šฐ๋งŒ \๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์œˆ๋„์šฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” \๋กœ ๊ฒฝ๋กœ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ, 2๊ฐœ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์œ ๋Š” 1๊ฐœ๋งŒ ์“ฐ๋ฉด ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (\n \t)

์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋กœ ์ธ์‹ํ•˜๊ธฐ ์œ„ํ•ด \\๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด D๋“œ๋ผ์ด๋ธŒ์˜ D_Other ํด๋”์— test.txt ๋ผ๋Š” ํŒŒ์ผ์„

ํ•ธ๋“ค๋งํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด์ธ ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ € ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ์ ์ด ์—†๊ณ  ์ € ๊ฒฝ๋กœ์— ์žˆ๋Š” ํŒŒ์ผ์„ ํ•ธ๋“ค๋ง ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ € ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์€๋ฐ ์ € ๊ฐ์ฒด๋ฅผ ํ•ธ๋“ค๋ง ํ•˜๊ธฐ์œ„ํ•ด์„œ File๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ ํ•˜๋Š”๊ฒƒ์ด๊ณ 

File ๊ฐ์ฒด๋Š” File class ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

ํ•ธ๋“ค๋งํ•  ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค์ฃผ๋ฉด ํŒŒ์ผ์„ ํ•ธ๋“ค๋งํ•  ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด ์กŒ์œผ๋ฉด ํ•ด๋‹น ํŒŒ์ผ์— ๋Œ€ํ•œ ํ•ธ๋“ค๋ง ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋•Œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์–ป์–ด์˜ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ getName() ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

ํŒŒ์ผ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฃจ๋Š” ํŒŒ์ผ์„ ํ•ธ๋“ค๋งํ•˜๋Š” ํŒŒ์ผ์€ ํด๋ž˜์Šค ์ด๋ฆ„์ด File์ผ ๋ฟ์ด์ง€ 

๋””๋ ‰ํ† ๋ฆฌ๋„ File ํด๋ž˜์Šค๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

File ํด๋ž˜์Šค ๋‚ด์— ์žˆ๋Š” ๊ฒƒ์ด ๋””๋ ‰ํ† ๋ฆฌ ์ผ ์ˆ˜ ์žˆ๊ณ  ํŒŒ์ผ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ์— ์—†๋Š” ํŒŒ์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 

์ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ File ํด๋ž˜์Šค ๋‚ด์—์„œ ๋‹ค๋ฃจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ด๊ฒŒ ํŒŒ์ผ์ธ์ง€ ์•„๋‹Œ์ง€ ์•Œ๊ณ ์‹ถ์€ ๊ฒฝ์šฐ๋ฅผ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ isFile() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ์ธ์ง€ ํŒ๋‹จํ•˜๋ ค๋ฉด isDirectory()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ์‹œ ํŒŒ์ผ์—ฌ๋ถ€์™€ ๋””๋ ‰ํ† ๋ฆฌ ์—ฌ๋ถ€๋ฅผ boolean ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ test.txt ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ง€์ •ํ•œ ๊ฒฝ๋กœ์— test.txt ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ

ํŒŒ์ผ ์—ฌ๋ถ€์™€ ๋””๋ ‰ํ† ๋ฆฌ ์—ฌ๋ถ€ ๋ชจ๋‘ false๋กœ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์ด๋ฒˆ์—๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ์ธ์ง€ ์•„๋‹Œ์ง€ if๋ฌธ์œผ๋กœ ์ฒดํฌํ•˜์—ฌ ํ™•์ธํ•˜๋Š” ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒ์ผ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ๊ฐ์ฒด์— ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•œ ๋’ค

getName() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•˜์—ฌ ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐ์–ด์ค€ ๋’ค

ํŒŒ์ผ์ธ์ง€ ๋””๋ ‰ํ† ๋ฆฌ์ธ์ง€ ํŒ๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ž‘์„ฑํ•œ ์ฃผ์„์„ ํ’€๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๋‹ค์Œ ์˜ˆ์ œ๋Š” ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ 2๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๊ฒŒ ๋˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

์ฒซ๋ฒˆ์งธ ์ธ์ž๊ฐ’์€ Parent๋ผ๊ณ  ํ•˜๋Š” ํŒŒ์ผ๊ฐ์ฒด๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์ด๊ณ  ๋‘๋ฒˆ์งธ๋Š” ์ŠคํŠธ๋ง์„ ๋„ฃ๋Š”๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ ์ƒ์„ฑํ•  ๋•Œ ์ด๋Ÿฐ ์ƒ์„ฑ์ž๊ฐ€ ํŒŒ์ผ ํด๋ž˜์Šค ์•ˆ์— ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด๋„ File ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ์ธ์ž๊ฐ’ ํ•˜๋‚˜๋งŒ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

ํ•ด๋‹น ํŒŒ์ผ์˜ ์šฉ๋Ÿ‰์„ ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ๊ณ , ๋‹จ์œ„๋Š” byte์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ์„ ์—ด์ง€ ์•Š์•„๋„ ํŒŒ์ผ ๊ฐ์ฒด์˜ length() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด JAVA IO๋กœ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋‹ค์Œ ์˜ˆ๋Š” ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ 2๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๊ฒŒ ๋˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

๋‹จ, ์ด๋•Œ ๋„˜๊ฒจ์ฃผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ฒซ๋ฒˆ์งธ(๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ), ๋‘๋ฒˆ์งธ(ํŒŒ์ผ๋ช…) ์ธ์ž๊ฐ’์ด ๋ชจ๋‘ String์ž…๋‹ˆ๋‹ค.

String ๊ฐ’์œผ๋กœ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

File ํด๋ž˜์Šค๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ƒ์„ฑ์ž๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

File์—์„œ getAbsolutePath() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ณ 

getPath()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํŒŒ์ผ ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ Parent์˜์—ญ ์ฆ‰ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ˆ๋Œ€๊ฒฝ๋กœ๋Š” ๊ด€์ธก์ž๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ์ƒ๊ด€์—†์ด ๊ทธ ๊ฒฝ๋กœ๋Š” ๋™์ผํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ๋ฃจํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ณ ์ •๋œ ์œ„์น˜ ๊ฒฝ๋กœ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ƒ๋Œ€ ๊ฒฝ๋กœ๋Š” ๊ด€์ธก์ž๊ฐ€ ์–ด๋””์žˆ๋Š”์ง€์— ๋”ฐ๋ผ ๊ฒฝ๋กœ๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ธฐ์ค€ ๊ฒฝ๋กœ์—์„œ ์–ผ๋งŒํผ ๋–จ์–ด์ง„ ๊ฒฝ๋กœ์ธ์ง€ ์•„๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์œˆ๋„์šฐ๋Š” ๋“œ๋ผ์ด๋ฒ„ ๋ฌธ์ž๊ฐ€ ์žˆ๋Š”๋ฐ C, D, K...

์œˆ๋„์šฐ ๋“œ๋ผ์ด๋ฒ„ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์€ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ์— ํ”„๋กœ์ ํŠธ๋ฅผ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๊ณต์œ ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์“ด ๊ฒฝ์šฐ ๋‚ด ์ปดํ“จํ„ฐ์— ๋Œ€ํ•œ ์„ค์ • ์ •๋ณด์— ๋Œ€ํ•œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒํ•œํ…Œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณต์œ ํ•˜๋ฉด ๋‚ด๊ฐ€ ์„ค์ •ํ•œ ์ ˆ๋Œ€๊ฒฝ๋กœ์™€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๊ณต์œ ๋œ ํ”„๋กœ์ ํŠธ์˜ ์†Œ์Šค๋ฅผ ์—ด์–ด ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•ด ์ฃผ์–ด์•ผ ๋˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ณต์œ ํ•  ๋ชฉ์ ์ด๋ผ๋ฉด ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ ˆ๋Œ€ ๋ณ€๊ฒฝ๋  ์ผ์ด ์—†๋Š” ๊ฒฝ๋กœ๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

getPath()์™€ getAbsolutePath() ์˜ ๊ฒฝ๋กœ๋Š” ๋™์ผํ•ด๋ณด์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ฐจ์ด์ ์€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๋‹ค์Œ์€ CanonicalPath ์ž…๋‹ˆ๋‹ค.

์ตœ์ข… ๊ณ„์‚ฐ๋œ ๊ฒฝ๋กœ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ž์ฃผ๋Š” ์•ˆ์“ด๋‹ค๊ณ  ํ•˜๋‹ˆ...

์ด๊ฒƒ์„ ์–ด๋Š๋•Œ์— ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„๊ด€๊ณ„์ƒ ๋” ํŒŒ๊ณ ๋“ค์ง„ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.(์–ธ์  ๊ฐ€ ์ดํ•ดํ•  ๋‚ ์ด ์˜ค๊ฒ ์ฃ )

 


๋‹ค์Œ์€ ํด๋ž˜์Šค๋ฅผ ๋‹ค๋ฃจ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

ํด๋ž˜์Šค์˜ URL์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

*URL(Uniform Resource Locator) 

 

URL์„ ์•ˆ๋‹ค๋Š” ์˜๋ฏธ๋Š” ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์•ˆ๋‹ค๋Š” ์˜๋ฏธ์ด๊ณ , ๊ทธ URL์„ ํ†ตํ•ด์„œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜์—ฌ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜์—ฌ ํŒŒ์ผ์„ ๋ฐ”๋กœ ๋‹ค์šด๋ฐ›๋Š” ํ–‰์œ„๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด ํด๋ž˜์Šค.class ํ•˜๋ฉด ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ๊ฐ–๊ณ  ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ฐ–๊ณ ์˜จ ํด๋ž˜์Šค ๊ฐ์ฒด์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ

getResource() ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋ž˜์Šค ์ด๋ฆ„์„ ์•Œ๋ ค์ฃผ๋ฉด ๊ทธ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” URL์„ ๋ฆฌํ„ด๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด์„œ ๋ฐ›์€ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

URL ์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ํŒŒ์ผ์— ๋Œ€ํ•œ ํ”„๋กœํ† ์ฝœ์„ ์ ‘๊ทผํ• ์ง€ ํ‘œ์‹œ๊ฐ€ ๋˜๋ฉฐ ์‹ค์ œ ๊ฒฝ๋กœ(์ ˆ๋Œ€๊ฒฝ๋กœ)๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํ† ์ฝœ : file: (http:)

 

๋‹ค๋ฅธ ์˜ˆ๋กœ

ํ˜„์žฌ ํด๋ž˜์Šค์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

getResource์•ˆ์— ""์ธ ๊ฒฝ์šฐ ๊ทธ๋ƒฅ ํ˜„์žฌ ํด๋ž˜์Šค์— ๋Œ€ํ•œ URL ์ •๋ณด๊ฐ€ ๋‚˜์˜ค๋ฉฐ

getPath() ์‹œ ๊ฒฝ๋กœ๋งŒ ํ‘œ์‹œํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๊ธ€์—์„œ getPath()๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ๋น„๊ตํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์ค„์€ ํ”„๋กœํ† ์ฝœ๊นŒ์ง€ ํฌํ•จํ•˜๊ณ  ์œ—์ค„์€ ํ”„๋กœํ† ์ฝœ์„ ํฌํ•จํ•˜์ง€ ์•Š์€ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋งŒ ํ‘œ์‹œํ•˜๊ณ  ์žˆ๋Š”๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ž์› ํด๋ž˜์Šค์— ๋Œ€ํ•ด ์ž์›์†Œ์Šค๋งŒ ๊ฐ–๊ณ ์˜ค๊ฑฐ๋‚˜ URL์„ ๊ฐ–๊ณ ์˜ค๊ฑฐ๋‚˜ ์„ ํƒ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.


์œ„์˜ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด์„œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ด์ œ๋Š” ํŒŒ์ผ๋งŒ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋””๋ ‰ํ† ๋ฆฌ ํ•ธ๋“ค๋ง๋„ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œˆ๋„์šฐ๋ผ๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ JAVA๋ผ๋Š” ์–ธ์–ด๋ฅผ ํ†ตํ•ด์„œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฉ”์„œ๋“œ๋Š” 2๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

mkdir(), mkdirs() ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

mkdir()์€ make directory ์•ฝ์ž๋กœ ๋ด๋„ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

mkdir()๊ณผ mkdirs()์˜ ์ฐจ์ด์ ์€ 

๊ฒฝ๋กœ์˜ ์กด์žฌ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•ด์„œ

mkdir()์€ ์ž‘์„ฑํ•œ ๊ฒฝ๋กœ๊ฐ€ ๋ชจ๋‘ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mkdirs()๋Š” ์ž‘์„ฑํ•œ ๊ฒฝ๋กœ ์ค‘ ๊ฒฝ๋กœ๊ฐ€ ์—†๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.

๋‘๊ฐœ์˜ ๊ณตํ†ต์ ์€

์ด๋ฏธ ํด๋”๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด, ์ƒ์„ฑ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ฝ”๋“œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‘๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ

์œ„์˜ ์ด๋ฏธ์ง€์— ํ‘œ์‹œ๋œ ๋นจ๊ฐ„์ƒ‰ ์˜์—ญ์˜ ์กด์žฌ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋””๋ ‰ํ† ๋ฆฌ ์„ฑ๊ณต/์‹คํŒจ๊ฐ€ ๊ฐˆ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

mkdir()์€ ์ฒซ๋ฒˆ์งธ ๋นจ๊ฐ„์ƒ‰ ์˜์—ญ์— ๋Œ€ํ•œ ํด๋”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ํด๋”๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ๊ฐ€ ์‹คํŒจ๋ฉ๋‹ˆ๋‹ค.

mkdirs()๋Š” ๋‘๋ฒˆ์งธ ๋นจ๊ฐ„์ƒ‰ ์˜์—ญ์— ๋Œ€ํ•œ ํด๋”๊ฐ€ ์—†์œผ๋ฉด, ์ž๋™์œผ๋กœ ํด๋”๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๊ณ  ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ๊ฐ€ ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์‹คํŒจ๊ฐ€ ๋œ ์ด์œ ๋Š” ์ด๋ฏธ ๋””๋ ‰ํ† ๋ฆฌ์— ํŒŒ์ผ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•œ ๋’ค ๋‹ค์‹œ ์‹คํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์„ฑ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ์ด๋ฏธ ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•œ๋‹ค๋ฉด, ๋ฎ์–ด์“ฐ๊ธฐ ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ž‘์—… ์‹คํŒจ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋‘๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


๋งˆ์ง€๋ง‰์œผ๋กœ ์ด ์ฝ”๋“œ๋ฅผ ๋งฅ๋ถ์—์„œ ์ˆ˜ํ–‰ ์‹œ ๊ฒฝ๋กœ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•˜๋ฉด ์ž˜ ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.