메모리에 새 java.io.File을 만드는 방법은 무엇입니까? [닫은]
File
하드 디스크가 아닌 메모리에 (java.io에서) 새로 만들려면 어떻게 해야합니까?
Java 언어를 사용하고 있습니다. 하드 드라이브에 파일을 저장하고 싶지 않습니다.
나는 나쁜 API (java.util.jar.JarFile)에 직면했습니다. String filename의 File 파일이 필요합니다. 파일이없고 (byte [] 내용 만 있음) 임시 파일을 만들 수는 있지만 아름다운 솔루션은 아닙니다. 서명 된 jar의 다이제스트를 확인해야합니다.
byte[] content = getContent();
File tempFile = File.createTempFile("tmp", ".tmp");
FileOutputStream fos = new FileOutputStream(tempFile);
fos.write(archiveContent);
JarFile jarFile = new JarFile(tempFile);
Manifest manifest = jarFile.getManifest();
임시 파일없이 매니페스트를 얻는 방법에 대한 모든 예를 주시면 감사하겠습니다.
나는 이제이 질문이 주제에서 벗어난 것이 아니라고 생각합니다.
스트림에 쓰려면 메모리에서 다음을 사용하십시오.
new ByteArrayOutputStream();
하드 디스크가 아닌 메모리에 java.io에서 새 파일을 만들려면 어떻게해야합니까?
어쩌면 당신은 혼동 File
과 Stream
:
- A
File
는 파일 및 디렉토리 경로 이름 의 추상적 인 표현입니다 .File
객체를 사용하여 파일 시스템의 파일 메타 데이터에 액세스하고이 파일 시스템의 파일에 대한 일부 작업 (예 : 파일 삭제 또는 만들기)을 수행 할 수 있습니다. 그러나File
클래스는 파일 내용을 읽고 쓰는 방법을 제공하지 않습니다. - 읽기와 파일 쓰기, 당신은 사용하고
Stream
, 객체를 같은FileInputStream
나FileOutputStream
. 이러한 스트림은File
개체 에서 만든 다음 파일을 읽고 쓰는 데 사용할 수 있습니다.
파일에서 읽고 쓰는 것과 유사한 방식으로 a 및 a 를 사용하여 바이트 버퍼 에서 읽고 쓰는 방식으로 메모리에 상주하는 바이트 버퍼를 기반으로 스트림을 만들 수 있습니다 . 배열은 "파일의"콘텐츠가 포함되어 있습니다. 그러면 개체 가 필요하지 않습니다 .ByteArrayInputStream
ByteArrayOutputStream
byte
File
모두 File...
와 ByteArray...
스트림에서 상속 java.io.OutputStream
하고 java.io.InputStream
사용자가 파일 또는 바이트 배열에서 읽는 여부를 숨길 수있는 공통의 슈퍼 클래스를 사용할 수 있도록하는 것이 각각.
참고 URL : https://stackoverflow.com/questions/17595091/how-to-create-new-java-io-file-in-memory
'Programing' 카테고리의 다른 글
C ++에서 변수를 선언 할 때 변수 이름을 괄호로 묶을 수있는 이유는 무엇입니까? (0) | 2020.10.06 |
---|---|
SQL Server 데이터베이스를 MySQL로 내보내는 방법은 무엇입니까? (0) | 2020.10.06 |
MySQL 데이터베이스를 MS SQL Server로 가져 오기 (0) | 2020.10.06 |
.htaccess에서“Vary : Accept-Encoding”헤더를 지정하는 방법 (0) | 2020.10.06 |
Tensorflow에서 global_step은 무엇을 의미합니까? (0) | 2020.10.06 |