파일 개요 및 사용법 소개
파일 개요
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C++ 함수의 재귀 깊이에는 제한이 있습니다. 이 제한을 초과하면 스택 오버플로 오류가 발생합니다. 제한 값은 시스템과 컴파일러에 따라 다르지만 일반적으로 1,000에서 10,000 사이입니다. 솔루션에는 다음이 포함됩니다. 1. 테일 재귀 최적화, 2. 테일 호출, 3. 반복 구현.

오픈 소스에 대해 자세히 알아보려면 다음을 방문하세요. 51CTO Hongmeng 개발자 커뮤니티 https://ost.51cto.com 실행 환경 DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. 애플리케이션을 생성하려면 파일을 클릭합니다. >새파일->CreateProgect. 템플릿 선택: [OpenHarmony]EmptyAbility: 프로젝트 이름 shici, 애플리케이션 패키지 이름 com.nut.shici 및 애플리케이션 저장 위치 XXX(한자, 특수 문자, 공백 없음)를 입력합니다. CompileSDK10, 모델: 스테이지. 장치

예, C++ Lambda 표현식은 std::function을 사용하여 재귀를 지원할 수 있습니다. std::function을 사용하여 Lambda 표현식에 대한 참조를 캡처합니다. 캡처된 참조를 사용하면 Lambda 표현식이 자신을 재귀적으로 호출할 수 있습니다.

재귀 알고리즘은 함수 자체 호출을 통해 구조화된 문제를 해결하지만 간단하고 이해하기 쉽다는 장점이 있지만 효율성이 떨어지고 스택 오버플로가 발생할 수 있다는 단점이 있습니다. 스택 데이터 구조의 장점은 더 효율적이고 스택 오버플로를 방지한다는 것입니다. 단점은 코드가 더 복잡할 수 있다는 것입니다. 재귀적 또는 비재귀적 선택은 문제와 구현의 특정 제약 조건에 따라 달라집니다.

정수 배열 Arr[]을 입력으로 사용합니다. 목표는 재귀적 방법을 사용하여 배열에서 가장 큰 요소와 가장 작은 요소를 찾는 것입니다. 재귀를 사용하고 있으므로 길이 = 1에 도달할 때까지 전체 배열을 반복한 다음 기본 사례를 구성하는 A[0]을 반환합니다. 그렇지 않은 경우 현재 요소는 현재 최소값 또는 최대값과 비교되고 해당 값은 후속 요소에 대해 반복적으로 업데이트됩니다. 이에 대한 다양한 입력 및 출력 시나리오를 살펴보겠습니다. −Input −Arr={12,67,99,76,32} Output −배열의 최대값: 99 설명 &mi

두 개의 문자열 str_1과 str_2가 주어졌습니다. 목표는 재귀 프로시저를 사용하여 문자열 str1에서 하위 문자열 str2의 발생 횟수를 계산하는 것입니다. 재귀 함수는 정의 내에서 자신을 호출하는 함수입니다. str1이 "Iknowthatyouknowthatiknow"이고 str2가 "know"인 경우 발생 횟수는 -3입니다. 예를 들어 str1="TPisTPareTPamTP", str2="TP"를 입력하면 Countofoccurrencesofasubstringrecursi가 출력됩니다.

Vue 양식 처리를 사용하여 양식의 재귀 중첩을 구현하는 방법 소개: 프런트 엔드 데이터 처리 및 양식 처리의 복잡성이 계속 증가함에 따라 복잡한 양식을 처리할 수 있는 유연한 방법이 필요합니다. 널리 사용되는 JavaScript 프레임워크인 Vue는 양식의 재귀 중첩을 처리할 수 있는 많은 강력한 도구와 기능을 제공합니다. 이 글에서는 Vue를 사용하여 이러한 복잡한 양식을 처리하는 방법과 코드 예제를 첨부하는 방법을 소개합니다. 1. 양식의 재귀 중첩 일부 시나리오에서는 재귀 중첩을 처리해야 할 수도 있습니다.

Java의 File.getParentFile() 함수를 사용하여 파일의 상위 디렉터리를 가져옵니다. Java 프로그래밍에서는 파일과 폴더를 조작해야 하는 경우가 많습니다. 파일의 상위 디렉토리를 가져와야 할 경우 Java에서 제공하는 File.getParentFile() 함수를 사용할 수 있습니다. 이 문서에서는 이 함수를 사용하는 방법을 설명하고 코드 예제를 제공합니다. Java의 파일 클래스는 파일과 폴더를 조작하는 데 사용되는 주요 클래스입니다. 파일 속성을 얻고 조작하는 다양한 방법을 제공합니다.
