-
(JAVA) 자바 파일(File) 객체 입력 &출력 관련 메소드JAVA/컨셉 , 예제 2018. 8. 24. 13:45
자바 콘솔 프로그램에서는 재귀 프로그램을 접할 일이 많다고 한다. 그중 가장 큰 이유가 파일 탐색 및 제어에 있다. 오늘은 파일 객체 입력 & 출력 메소드 사용 방법에 대해 포스팅.
1. 바탕화면에 newfolder 생성
2. newfolder 내부에 다음과 같이 폴더 생성.
3. java 폴더 안에 다음과 같이 폴더 및 텍스트 파일 생성
4. java 폴더의 빨간 박스 클릭해 경로 복사해 다음과 같이 코드 작성한다.
모든 파일을 탐색하는 프로그램을 작성하는 절차는 다음과 같다.
객체 생성 방법 : File 파일명 = new File(파일 경로); // 파일 경로는 String
주요 메소드 및 파일 탐색 절차
isDirectory() : 폴더인 경우 true, 파일인 경우 false 리턴
list() : 파일 객체 내부의 파일명을 String 배열로 리턴
File.separator : 운영체제(리눅스,맥 / 윈도우즈)에 따른 파일 구분자 문자열로 리턴.
리눅스, 맥 파일 구분자 : "/"
윈도우즈 파일 구분자 : "\\"
getAbsolutePath() : 파일 객체의 절대경로 String 형태로 리턴
모든 파일 탐색 절차
1. 탐색하고 싶은 파일의 경로를 통해 파일 객체 생성.
2. isDirectory 함수 통해 해당 객체가 디렉토리인지 파일인지 확인
2-1) 파일인 경우 : 파일명 출력
2-2) 폴더인 경우 : 해당 객체의 경로에 File.seperator와 폴더명 더한 String 객체를 매개변수로 파일 객체 생성 이후 2의 과정 반복
포인트는 2-2)의 경우 1부터의 과정을 반복해야 한다는 점이다. 이를 위해 재귀함수 호출을 사용이 불가피해진다. 재귀적함수를 이용한 코드는 다음 포스팅 때 작성하도록 하고 일단 메소드의 사용법에 대해 포스팅.package blog.naver.com.test; import java.io.File; public class FileTest { public static void main(String[] args) { String folderPath = "C:\\Users\\Admin\\Desktop\\newfolder"; // 파일의 경로. 윈도우의 경우 파일 구분자 : \\ // 맥, 리눅스의 경우 파일 구분자 : / File filePath = new File(folderPath); if(filePath.isDirectory()){ System.out.println(filePath.getPath() + "는 폴더입니다."); } else System.out.println(filePath.getPath() + "는 파일입니다."); File javaFolder = new File(filePath.getAbsolutePath()+File.separator+"java"); if(javaFolder.isDirectory()){ System.out.println(javaFolder.getAbsolutePath()+"는 디렉토리입니다."); }else{ System.out.println(javaFolder.getAbsolutePath()+"는 파일입니다."); } String[] contents = javaFolder.list(); for(String content : contents){ System.out.println(content); } } }※ 4에서 복사한 경로를 folderPath에 넣는 게 포인트.
탐색하고 싶은 파일의 경로를 String에 저장하는 역할
5. 실행 결과.
폴더가 파일인지 폴더인지 구분한 결과 및 C:\Users\Admin\Desktop\newfolder\java 경로에 있는 파일들을 for each로 출력.'JAVA > 컨셉 , 예제' 카테고리의 다른 글
(JAVA) 자바 클래스(static) 멤버 &인스턴스(instance) 멤버 (0) 2018.08.24 (JAVA) 자바 파일 입력 & 출력 & 복사 & static (0) 2018.08.24 (JAVA) 객체지향 프로그래밍 예제 & toString (0) 2018.08.24 (JAVA) 생성자(Constructor) & Setter (0) 2018.08.24 (JAVA) 자바 문자열 출력 방법. (0) 2018.08.24