java FileSystem을 사용하여 디렉토리 내의 파일을 압축하려고합니다. 몇 개의 파일 만 있으면 잘 작동하지만 100 개가 넘는 파일이 있으면 실패합니다.java의 여러 파일 zip 오류 ZIP FileSystem
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
어디 내가 잘못 :
Map<String, String> env = new HashMap<>();
env.put("create", "true");
URI uri = URI.create("jar:file://10.0.8.31/Shared/testFile.zip");
long bytesRead = 0;
File dir = new File("D:\\Shared\\DPXSequence");
try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {
for (File sourceF : dir.listFiles()) {
Path externalFile = Paths.get(sourceF.getAbsolutePath());
Path pathInZipfile = zipfs.getPath("/" + sourceF.getName());
// copy a file into the zip file
Files.copy(externalFile, pathInZipfile, StandardCopyOption.REPLACE_EXISTING);
}
}
catch(Exception e) {
System.out.println("Error : "+e.toString());
}
이 내가지고있어 오류는 다음과 같습니다
이것은 내가 내 프로그램에서 사용되는 코드는? Files.copy()
실제로 압축되어 대상 폴더에 복사되기 전에 실행이 완료된 것 같습니다. 그것이 문제의 원인입니까?
아마도 @ diego-giagio 대답에 의한이 [대답] (http://stackoverflow.com/a/23861949/2287893) 대답은 OOM을 극복하는 데 도움이됩니다. – MZerau