Erstellen einer Datei aus einem Byte-Array

8

Also - Ich habe eine Drittanbieter-Bibliothek, die ein File als Eingabe benötigt. Ich habe eine byte array .

Ich möchte die Bytes nicht auf Festplatte schreiben. Ich möchte das im Speicher behalten. Irgendeine Idee, wie ich ein File von dem bereitgestellten byte array erstellen kann (ohne auf Platte zu schreiben)?

    
desau 13.09.2010, 21:26
quelle

3 Antworten

10

Sorry, nicht möglich. Eine Datei ist von Natur aus eine Entität auf der Festplatte, es sei denn, Sie haben eine RAM-Disk - aber das können Sie nicht in Java erstellen.

Das ist genau der Grund, warum APIs nicht auf Dateiobjekten basieren sollten (oder überlastet sein sollten, um einen InputStream zu akzeptieren).

    
Michael Borgwardt 13.09.2010, 21:29
quelle
3

Es gibt eine Möglichkeit, aber es ist eine echte Long-shot.

Wenn die API new FileReader(file) oder new FileInputStream(file) verwendet, dann sind Sie abgespritzt, aber ...

Wenn die Datei in eine URL oder einen URI konvertiert wird (mit toURL() oder toURI() ), können Sie, da File nicht endgültig ist, eine Unterklasse von File übergeben, in der Sie die Konstruktion von die URL / URI und, noch wichtiger, den Handler.

Aber die Chancen sind sehr dünn!

    
dty 13.09.2010 21:39
quelle
0

Also ich sehe, es gibt eine akzeptierte Antwort (und das ist alt), aber ich habe einen Weg gefunden, dies zu tun. Ich benutzte die IDOL On Demand API und musste ein byte array in ein File umwandeln.

Hier ist ein Beispiel, wie man ein byte array eines Bildes nimmt und in ein File verwandelt:

%Vor%

Und so outputfile ist ein File , das später in Ihrem Programm verwendet werden kann.

    
WMios 11.08.2015 15:49
quelle

Tags und Links