File
클래스의 list()
메서드를 사용하면 수천 개의 파일이있는 디렉토리에 문제가 발생합니까? 이로 인해 배열이 너무 많은 메모리를 사용하도록 반환 될 수 있습니까?많은 파일이있는 디렉토리에서 파일 목록 가져 오기
어떤 대안이 있습니까?
File
클래스의 list()
메서드를 사용하면 수천 개의 파일이있는 디렉토리에 문제가 발생합니까? 이로 인해 배열이 너무 많은 메모리를 사용하도록 반환 될 수 있습니까?많은 파일이있는 디렉토리에서 파일 목록 가져 오기
어떤 대안이 있습니까?
(이 경우 몇 메가 바이트를 할당하는 것이 좋습니다). 먼저 실제 문제 일 경우 해결 방법을 찾으십시오.
가능성이 낮습니다. File.list()
을 사용하면 문제가 없습니다. 수천 개의 파일 이름은 메모리 측면에서별로 중요하지 않습니다.
대안으로는 Java에서이를 수행하는 "더 좋은 방법"이 없으며 이미 말한 것처럼 아마 필요하지 않을 것입니다.
내가 틀릴 수도 있지만 확실하게 반환 된 데이터의 양을 절약 할 수있는 방법은 없습니다. 돌려 주어지는 배열은, 디렉토리 내의 파일 수와 같은 수의 캐릭터 라인을 포함 할 필요가있는 바이트 수를 항상 사용합니다. 내가 메모리 사용량을 줄이기 위해 볼 수있는 유일한 방법은 복잡한 문자열 압축 기법을 사용하거나 파일을 폴더로 구성한 다음 필요한 메서드에만 목록 메서드를 사용하는 것입니다. 희망이 도움이됩니다.
예, 전 단지 파일 배열을 스트림 전체 나 세그먼트가 아닌 무언가로 제공하는 방법을 생각하고있었습니다. – twisted
import java.io.*;
import java.util.*;
public class prog14{
public static void main(String[] args){
String path = "";
System.out.print("Enter the folder path: ");
Scanner scn = new Scanner(System.in);
path = scn.nextLine();
File[] files = new File(path).listFiles();
for (File file : files)
{
System.out.println(file.getName());
}
}
}
시도 할 때 어떤 일이 발생 했습니까? –