Programing

메모리에 새 java.io.File을 만드는 방법은 무엇입니까?

lottogame 2020. 10. 6. 07:41
반응형

메모리에 새 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에서 새 파일을 만들려면 어떻게해야합니까?

어쩌면 당신은 혼동 FileStream:

  • A File는 파일 및 디렉토리 경로 이름 의 추상적 인 표현입니다 . File객체를 사용하여 파일 시스템의 파일 메타 데이터에 액세스하고이 파일 시스템의 파일에 대한 일부 작업 (예 : 파일 삭제 또는 만들기)을 수행 할 수 있습니다. 그러나 File클래스는 파일 내용을 읽고 쓰는 방법을 제공하지 않습니다.
  • 읽기와 파일 쓰기, 당신은 사용하고 Stream, 객체를 같은 FileInputStreamFileOutputStream. 이러한 스트림은 File개체 에서 만든 다음 파일을 읽고 쓰는 데 사용할 수 있습니다.

파일에서 읽고 쓰는 것과 유사한 방식으로 a 및 a 사용하여 바이트 버퍼 에서 읽고 쓰는 방식으로 메모리에 상주하는 바이트 버퍼를 기반으로 스트림을 만들 수 있습니다 . 배열은 "파일의"콘텐츠가 포함되어 있습니다. 그러면 개체 가 필요하지 않습니다 .ByteArrayInputStreamByteArrayOutputStreambyteFile

모두 File...ByteArray...스트림에서 상속 java.io.OutputStream하고 java.io.InputStream사용자가 파일 또는 바이트 배열에서 읽는 여부를 숨길 수있는 공통의 슈퍼 클래스를 사용할 수 있도록하는 것이 각각.

참고 URL : https://stackoverflow.com/questions/17595091/how-to-create-new-java-io-file-in-memory

반응형