Beny's Study
01.[강의] 파일경로(절대경로,상대경로), 파일메서드(file method) 본문
파일경로- 절대경로,상대경로
파일경로 : 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차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."