java.io 패키지는 기존의 파일이나 폴더에 대한 제어를 하는 데 사용하는 File 클래스를 제공
파일의 정보 / 폴더와 파일 구분
파일에 쓰고 저장 / 파일 내용 읽기
=> 외부의 데이터를 조작하기 때문에 예외처리(IOException)을 해주지 않으면 컴파일 되지않는다.
IO => InputOutput
File file = new File("경로");
File file = new File("경로/파일명");
예) D:\filetest\log.txt
자바 : D:/filetest/log.txt
File 클래스의 메소드
파일의 이름 : getName() => 문자열로 반환
=> 파일의 이름 출력
파일의 경로 : getPath() => 문자열로 반환
파일의 절대경로 : getAbsolutePath() => 문자열로 반환
파일 존재 여부 : exists() => 논리값 반환
파일 수정 여부 : canWrite() => 논리값 반환
파일 읽기 가능 여부 : canRead() => 논리값 반환
파일 인지 여부 => D:/filetets/log.txt // isFile() => 논리값 반환
폴더 인지 여부 => D:/filetets // isDirectory() => 논리값 반환
파일 최종 수정 날짜 : 정수 => long 타입 // lastModified() => 정수
파일 크기 : byte 타입 // length() => 정수
D:/filetest/log.txt <== 절대 경로
예) D:/filetest 현재 위치
"./log.txt" <== 상대 경로 : 현 위치기준 log.txt
예)현 위치/log.txt
"../log.txt" <== 상대 경로 : 현재 폴더의 상위폴더 안에 log.txt
예) D:/log.txt
자바 웹으로 들어가면 대부분 상대경로를 사용하지 절대경로는 쓰지않는다.
(다른 사람에게 보냈을때 서로의 컴퓨터 환경이 같지 않기때문에(폴더구조) 파일이 깨지게 된다.)
//정수를 날짜로 => Data클래스 : java.util 패키지로 사용해야함
Date date = new Data(정수);
list() : 지정한 경로 내의 폴더명과 파일명을 문자열 배열로 반환 : String[] 변수로 저장 받는다.
만약, 해당 문자열을 이용하여 파일의 정보를 알아 내려면 반드시, File 객체를 이용해야한다.
주의 : 해당 폴더 내부만 검색 가능 폴더 안의 폴더 내용은 검색 불가능
파일을 직접 쓰고 저장하는 방법
FileWriter클래스와 BufferedWriter클래스
1.FileWriter 객체 생성
FileWriter fw = new FileWriter(값); => 값을 넣어줘야한다.(파일의 경로) => uri를 넣어줌
=>ex) String uri = "D:filetest/test.txt";
* 없는 파일은 생성까지 해주고 존재하는 파일이면 파일을 열고 대기한다.
2.BufferedWriter 객체 생성
BufferedWriter bw = new BufferedWriter(FileWriter 객체); => fw넣어줌
String s ="asfasfawdsfdsafawefsfasdfaefasdfawfsdfefsfdsfaew"; // 추가할 값을 변수에 저장 시켰다.
3.bw.writer(s);
정해놓은 파일에 변수 s에 들어있는 값을 넣어준다.
4.bw.close();
닫아줘야 저장 된다.
5.fw.close();
열렸던 파일이 닫힌다.
* 외부데이터를 건드렸기때문에 예외처리 필수
파일인지 폴더인지(디렉토리) 확인
파일 읽기 FileReader클래스와 BufferedReader 클래스
FileReader fr = new FileReader();
BufferedReader br = new BufferedReader();
'개발노트 > Java' 카테고리의 다른 글
[Java] 예외 처리 (0) | 2021.04.02 |
---|---|
[Java] method (0) | 2021.03.19 |
[Java] String Method (0) | 2021.03.17 |
[Java] 배열과 ArrayList (0) | 2021.03.17 |
[Java] 보수 (0) | 2021.02.20 |