Beny's Study

01.[강의] 파일경로(절대경로,상대경로), 파일메서드(file method) 본문

[JAVA]/12.입출력

01.[강의] 파일경로(절대경로,상대경로), 파일메서드(file method)

76beny 2022. 5. 29. 21:21

파일경로- 절대경로,상대경로

파일경로 : path 란?
 - file이 저장되어 있는 보조기억장치경로(종류 : HDD,SSD등 다양한 보조기억장치가 있다) (위치)

절대경로 VS 상대경로
 1. 절대경로란?
 -ROOT가 존재 (디스크상의 최상의 위치)(보통 윈도우에서 C:\(c드라이브), 리눅스에서는 \ )로 부터 표기되는 절대적인 경로
 ex) / C:\Users\text.txt
파일 우클릭 후 properties누르면 나옴
C:\dev_source\work_space_java_325AM\13_IO\copy1_covid.txt

 2.상대경로
 - 프로그램의 실행 위치로부터의 표기되는 상대적인 경로
 상대경로의 시그니처 표시 : .(현재위치)이나 ..(상위폴더위치)으로 표시되는 경로

13_IO/src/covid.txt => .covid.txt
 cmd봐보면 절대경로 자동으로 뜸
 ..누르면 점점 뒤로감-> dir치면 저장해논 소스 나옴, -> work_space_java_325AM하면 그동안 만든 이클립스파일 뜸
ex)./copy1_covid.txt

 

경로

File file1 = new File("./covid.txt");// 상대경로(현재파일로부터의 경로),file1에 저장

File file = new File(C:\dev_source\work_space_java_325AM\13_IO\covid.txt);
// 절대경로 출력하는방법1

File file2 = new File(file1.getAbsolutePath());// 절대경로(c드라이브 부터의 경로), file2에 저장

 

 

 

경로출력하기

System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());

상대경로 : .getPath()   =현재위치로부터의 경로

절대경로 : .getAbsolutePath() =c드라이브 부터로의 경로

 

[출력]

.\covid.txt

C:\dev_source\work_space_java_325AM\13_IO\covid.txt

 

부모경로 출력하기

System.out.println(file1.getParent());
System.out.println(file2.getParent());

 .getParent() 

부모경로 출력 메서드

 

[출력]

.
C:\dev_source\work_space_java_325AM\13_IO\.

 

[출력 해석]

. (상대경로로 만들고 부모를 출력하기때문에 상대경로로 . 만 뜸)
 .으로 떴기 때문에 부모의 위치는 현재경로! 만약, ..으로 떴으면 상위폴더에 위치 해 있음!

 

절대경로로 만들고 부모를 출력했기 때문에 절대경로로 전부 다뜸

 

권한물어보기

System.out.println(file1.canRead());
System.out.println(file1.canWrite());
System.out.println(file1.canExecute());

.canRead() : 읽기

.canWrite() : 쓰기

 .canExecute() : 실행권한( 리눅스 전용기능)

 

[출력]

true

true

true

 

 

권한설정

file1.setWritable(false);
//의미 : 쓰는게 가능하니// 쓰기 설정을 false로 해놓고 

System.out.println(file1.canWrite());
// 쓰기//can으로 출력할 경우 false로 해놨기떄문에 false출력

file1.setWritable(true);
//다시 권한 주기위해 true로 변경해놈// 윈도우+자바에서는 setWritable만가능

[출력]

false

 

 

이름바꾸기

File newFile = new File("./covid2.txt");
file1.renameTo(newFile);

위에 새로운 참조변수 선언안하고 괄호에 계속 넣으면 매번 값을 바꿔줘야 함!

 

 

사용이력보기(수정날짜 보기)

SimpleDateFormat df = new SimpleDateFormat("yyy-MM-dd hh:mm:ss");
System.out.println(df.format(file1.lastModified()));

SimpleDateFormat 

날짜포멧지정

 

lastModified메소드 

: 최종수정날짜 

 

long으로 땡겨 오는 이유 

: 보통 time일떄 long로 떙겨옴

 

[출력]

2022-04-20 09:38:08

 

 

파일길이

System.out.println(file1.length() + "byte");//바이트로 찍기
System.out.println(file1.length() / 1024 + "kbyte");//키로바이트로찍기

 .length()

파일길이 출력

 

byte,K,M,G,T,P......(파일길이 순서)(길이 별로 1024로 계속 나누면 계속 쪼개짐!)

=> 그래서 키로바이트로 나누려고 1024로 나눠줌!!!

 

[출력]

12128byte
11kbyte

 

 

파일 존재여부

System.out.println("파일 존재 : " + file1.exists());
System.out.println("파일 존재 : " + new File("./test.txt").exists());

.exists()

파일 존재여부 출력

 

출력결과는 true또는 false로 출력됨

 

[출력]

파일 존재 : true
파일 존재 : true

 

 

파일삭제

file1.delete();

.delete()

파일삭제

 

돌린 후 패키지익스플로러 새로고침하면 삭제되어있음!

 

 

디렉토리 = 폴더

File folder = new File(".");// 현재경로//.찍는 이유 : 
		if (folder.isDirectory() == true) {//폴더는 isDirectory(디렉토리)니?
			System.out.println("폴더입니다.");//폴더입니다.
		}
		System.out.println(Arrays.toString(folder.listFiles()));
		//listFiles로 가져오기(파일들이 주르륵 뜸)
		//[.\.classpath, .\.project, .\.settings, .\bin, .\src]

 

 

 


"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.

이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."