파일 개요
java.io.File 클래스: 파일 및 디렉터리 경로 이름의 추상 표현입니다.
컴퓨터의 파일, 폴더 및 경로를 설명하는 데 사용됩니다.
파일과 관련하여 일반적으로 사용되는 세 가지 단어:
파일: 파일
디렉토리: 폴더(디렉토리)
경로: 경로
파일은 시스템과 관련된 파일입니다. 관련 없는 클래스
File 클래스의 세 가지 오버로드된 구성 방법
경로:
윈도우 시스템의 디렉터리 구분 기호는 하나입니다.
Java의 디렉터리 구분 기호는 다음과 같습니다. \ 또는 /
경로 분류:
절대 경로 : 다음으로 시작하는 경로 드라이브 문자
예: D:\ase\20170514\day10
D:\Work_EE_266\day10\src
상대 경로:현재 프로젝트를 기준으로 프로젝트 간 경로를 작성할 때 드라이브 문자를 생략할 수 있습니다
D:\Work_EE_266\day10-->src
참고: Lu Jin은 대소문자를 구분하지 않습니다
파일(파일 상위, 문자열 하위)
경로 전달, 파일 유형 상위 경로, 문자열 유형 Subpath
장점: 상위 경로 File 유형이며 상위 경로는 File 클래스의 메소드를 직접 호출할 수 있습니다
File(String parent, String child)
경로 전달, 문자열 유형 상위 경로 및 문자열 유형 하위 경로 전달
장점: 분리됨 경로를 별도로 매개변수로 전달할 수 있습니다
파일(문자열 경로명)
경로 이름 전달: 폴더나 파일에 쓸 수 있습니다
c:\abc c: \abc \Demo.java
경로는 대소문자를 구분하지 않습니다.
1 public static void main(String[] args) { 2 /* 3 * static String pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。 4 * static char pathSeparatorChar 与系统有关的路径分隔符。 5 * static String separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。 6 * static char separatorChar 与系统有关的默认名称分隔符。 7 */ 8 String pathSeparator = File.pathSeparator; 9 System.out.println(pathSeparator);//路径分隔符 windows 分号; linux 冒号:10 11 String separator = File.separator;12 System.out.println(separator);//目录名称分隔符windows 反斜杠\ linux 正斜杠/13 14 /*15 * System类中的方法16 * static String getProperty(String key) 获取指定键指示的系统属性。 17 * file.separator 文件分隔符(在 UNIX 系统中是“/”) 18 * path.separator 路径分隔符(在 UNIX 系统中是“:”) 19 * line.separator 行分隔符(在 UNIX 系统中是“/n”) 20 */21 System.out.println(System.getProperty("file.separator"));22 System.out.println(System.getProperty("line.separator"));23 System.out.println(System.getProperty("path.separator"));24 }
파일 클래스 생성 및 삭제 기능
파일 클래스 삭제 기능
boolean delete()
삭제 파일 또는 폴더, 파일 생성 방법에 따라 지정
삭제에 성공하면 true를 반환하고, 삭제에 실패하면 false를 반환합니다(존재하지 않는 경우, 폴더에 내용이 있는 경우)
삭제 방법은 휴지통에 가지 않고, 직접 삭제합니다. 하드 디스크
삭제는 위험하므로 주의해서 작업하세요
파일 생성 폴더 기능
boolean mkdir()은 단일 레이어 폴더만 생성할 수 있습니다.
boolean mkdirs()는 단일 레이어 폴더와 다중 레이어 폴더를 모두 생성할 수 있습니다
생성된 경로는 File 생성 방법 Out에도 부여됩니다.
폴더가 이미 존재할 경우 생성되지 않습니다.
File 파일을 생성하는 함수
boolean createNewFile()
생성된 파일 경로와 파일 이름이 지정됩니다. 파일 생성자에
파일이 이미 존재하는 경우 생성되지 않고 false를 반환합니다
폴더가 아닌 파일만 생성할 수 있습니다(유형을 확인하고 접미사를 확인하지 마세요)
폴더를 생성하는 경로는 다음과 같습니다. 존재
File 클래스의 판단 기능
boolean isDirectory()
생성 방식에 캡슐화된 파일 판단 경로가 폴더인지 여부
폴더이면 true, 폴더가 아니면 false 반환
boolean isFile()
File 생성 메소드에 캡슐화된 경로가 파일인지 확인
boolean presents()
File 생성 메소드에 캡슐화된 경로가 파일인지 확인 경로가 존재하는지 여부
존재하면 true, false이면 false 반환 존재하지 않습니다
File 클래스의 함수 얻기
String getParent() String 객체를 반환합니다
File getParentFile() File 객체를 반환합니다
상위 경로를 가져오고, 파일 끝에 상위 경로를 반환합니다.
긴 길이()
경로에 표시된 파일의 바이트 수를 반환합니다. 폴더에는 크기가 없습니다.
String getPath() 이 추상 경로 이름을 경로 이름 문자열로 변환합니다.
Same as toString
String getName()
경로에 표시된 파일 또는 폴더 이름을 반환합니다.
경로의 마지막 부분 이름을 가져옵니다.
File getAbsoluteFile() 이 추상 경로 이름의 절대 경로 이름 형식을 반환합니다.
String getAbsolutePath() 이 추상 경로명의 절대 경로명 문자열을 반환합니다.
절대 경로 가져오기
디렉터리 list 및 listFiles를 순회하는 방법
참고:
1. 순회되는 경로는 하나의 디렉터리만 가능합니다
2. 순회되는 디렉터리는 반드시 존재해야 합니다
그렇지 않으면 null 포인터 예외가 발생합니다
static File[] listRoots()
시스템의 모든 루트 디렉토리를 가져옵니다.
File[] listFiles()
File 생성 방법에 캡슐화된 경로에 있는 파일 및 폴더 이름을 가져옵니다(디렉토리 탐색)
디렉토리를 반환합니다. 또는 파일의 전체 경로
String[] list()
파일 생성 방법에 캡슐화된 경로에서 파일 및 폴더 이름을 가져옵니다(디렉토리 탐색)
이름만 반환됩니다
Recursion
Recursion: 메서드 self Call yourself
범주:
재귀는 직접 재귀와 간접 재귀 두 가지 유형으로 나뉩니다.
직접 재귀는 메소드 자체가 자신을 호출하는 것을 말합니다. 간접 재귀를 사용하면 메서드 A가 메서드 B를 호출하고, 메서드 B가 메서드 C를 호출하고, 메서드 C가 메서드 A를 호출할 수 있습니다.
참고:
1. 재귀를 중지할 수 있도록 재귀를 조건부로 제한해야 합니다. 그렇지 않으면 스택 메모리 오버플로가 발생합니다.
2. 재귀 횟수에는 제한이 있지만, 재귀 횟수는 너무 많아지면 안 됩니다. 그렇지 않으면 스택 메모리 오버플로도 발생합니다.
3. 구성 방식, 재귀 금지
1 使用递归计算1-n之间的和 2 n + (n-1)+ (n-2)+(n-3)+...+1 3 5 +(5-1)+(4-1)+(3-1)+(2-1) 4 结束条件:n=1的时候结束 5 方法自己调用自己目的:获取n-1,获取到n=1的时候结束 6 public static int DGSum(int n){ 7 //添加结束条件 8 if(n==1){ 9 return 1;10 }11 return n+DGSum(n-1);12 } 13 14 使用递归计算阶乘15 private static long DGJC(int n) {16 //递归的结束条件 n==117 if(n==1){18 return 1;19 }20 return n*DGJC(n-1);21 }22 23 使用递归计算斐波那契数列 24 private static int fbnq(int month) {25 //结束条件如果month是1,2直接返回126 if(month==1 || month==2){27 return 1;28 }29 //3月以上:兔子数量是前两个月之和30 return fbnq(month-1)+fbnq(month-2);31 }
文件过滤器
文件的过滤器:
需求:遍历hello文件夹,只获取文件夹中的.java结尾的文件
c:\\hello
c:\\hello\\demo.txt
c:\\hello\\Hello.java
在File类中listFiles()方法是遍历文件夹的方法
有两个和 listFiles重载的方法,参数传递的就是过滤器
File[] listFiles(FileFilter filter)
File[] listFiles(FilenameFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
发现方法的参数FileFilter和FilenameFilter是接口
所有我们需要自己定义接口的实现类,重写接口中的方法accept,实现过滤功能
1 public class FileFilterImpl implements FileFilter{ 2 /* 3 * 实现过滤的方法: 4 1.把传递过来的路径pathname,变成字符串 5 Stirng s = pathname.toString(); "c:\\hello\\demo.txt" 6 String s = pathname.getPaht(); "c:\\hello\\demo.txt" 7 String s = pathname.getName(); "demo.txt" 8 2.使用String类中的方法endsWith判断字符串是否以指定的字符串结尾 9 boolean b = s.endsWith(".java");10 return b;11 */12 @Override13 public boolean accept(File pathname) {14 /*String s = pathname.getName();15 boolean b = s.endsWith(".java");16 return b;*/17 return pathname.getName().toLowerCase().endsWith(".java");18 }19 }20 public class FilenameFilterImpl implements FilenameFilter{21 22 @Override23 public boolean accept(File dir, String name) {24 return name.toUpperCase().endsWith(".JAVA");25 }26 27 }
断点调试
debug断点调试
f6:逐行执行
f5:进入到方法中
f7:结束方法
f8:跳到下一个断点
watch:捕获
위 내용은 파일 개요 및 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!