Bagaimana cara membuat baru File
(dari java.io
) di memori, bukan di hard disk?
Saya menggunakan bahasa Java. Saya tidak ingin menyimpan file di hard drive.
Saya dihadapkan dengan API yang buruk ( java.util.jar.JarFile
). Ini mengharapkan File file
dari String filename
. Saya tidak memiliki file (hanya byte[]
konten) dan dapat membuat file sementara, tetapi ini bukan solusi yang bagus. Saya perlu memvalidasi intisari toples yang ditandatangani.
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();
Setiap contoh bagaimana mencapai mendapatkan manifes tanpa membuat file sementara akan sangat dihargai.
File
?File
menurut definisi ada di hard drive.Jawaban:
Untuk menulis ke aliran, dalam memori, gunakan:
sumber
Mungkin Anda bingung
File
danStream
:File
adalah representasi abstrak dari nama jalur file dan direktori . Dengan menggunakanFile
objek, Anda dapat mengakses metadata file di sistem file, dan melakukan beberapa operasi pada file di sistem file ini, seperti menghapus atau membuat file. TetapiFile
kelas tidak menyediakan metode untuk membaca dan menulis konten file.Stream
objek, sepertiFileInputStream
atauFileOutputStream
. Aliran ini dapat dibuat dariFile
objek dan kemudian digunakan untuk membaca dan menulis ke file.Anda dapat membuat aliran berdasarkan buffer byte yang berada di memori , dengan menggunakan file
ByteArrayInputStream
dan aByteArrayOutputStream
untuk membaca dan menulis ke buffer byte dengan cara yang sama seperti Anda membaca dan menulis dari file. Thebyte
array berisi konten "File ini". Kalau begitu Anda tidak membutuhkanFile
objek.Baik the
File...
dan theByteArray...
stream mewarisijava.io.OutputStream
java.io.InputStream
masing-masing dan , sehingga Anda dapat menggunakan superclass umum untuk menyembunyikan apakah Anda membaca dari file atau dari array byte.sumber
createTempFile
untukjava.io.file
. File ini dapat disetel ke hapus otomatis saat uji unit keluar.Anda dapat menggunakan sistem file dalam memori, seperti Jimfs
Berikut contoh penggunaan dari readme mereka:
sumber