Byte array in einer Datei abspeichern

smokymcdope

Grünschnabel
Hallo erstmal !!

Ich komm mal gleich zur Sache, mache grad ein projekt "Bildverschlüsselung nach Vernam (onetimepad) und bin auf ein "kleines" problem gestoßen, nämlich das abspeichern des Byte arrays in einer Datei,
Bsp. habe ein bld ins byte array umgewandelt, nun muss ich diese array abspeichern , damit ichs später aufrufen und einlesen kann . Vielleicht hat einer eine Idee wie man da vorgehen soll ?
 
probiers mit
Code:
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(dateiname));
stream.write(bytearray,0,bytearray.length());
damit kannst du ein Array von Bytes ablegen und mit dem Read-Pendant das ganze auch wieder einlesen...
 
Zuletzt bearbeitet:
Clash noch eine Frage , wie kann man diese Bytes dann aufrufen und wiederlesen können das andere funktioniert , merci
 
BufferedInputStream streams = new BufferedInputStream (new FileInputStream(bilddatei));
streams.read( encryptedBytes,0,encryptedBytes.length);

das ist jo klar, aber das neue problem heißt jetzt , er erkennt das encryptedBytes nid und weiss nid welche länge das Array haben soll wenn ich es mit
byte[] encryptedBytes ;

deklariere.

Problem verstanden ?

und noch, aus was ist dieses .read() aufgebaut welche parameter hat es. ich muss glaub ich erst die richtige länge von diesem encryptedBytes wissen um das ReadPendant ausführen zu können, sowies ichs schon beschrieben habe
 
und noch, aus was ist dieses .read() aufgebaut welche parameter hat es. ich muss glaub ich erst die richtige länge von diesem encryptedBytes wissen um das ReadPendant ausführen zu können, sowies ichs schon beschrieben habe

wie wärs mit der java api?
http://java.sun.com/javase/6/docs/api/

und wenn du das Feld nur so deklarierst
Code:
byte[] encryptedBytes ;
weiss der interpreter logischerweise nicht wie groß es sein soll, es ist ja nicht mit einer größe initialisiert worden.
am besten du führst read() aus bis das Ende des Streams erreicht ist und speicherst die bytes, die da rauskommen in einer dynamisch erweiterbaren Struktur oder du legst von anfangs ein bytearray an, das entsprechend groß genug ist
 
Java:
public byte[] readFile(String dateiname) {
		byte[] buffer = null;
		try {
			BufferedInputStream in = new BufferedInputStream(new FileInputStream(dateiname));
			buffer = new byte[in.available()];
			in.read(buffer);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return buffer;
	}
 
Zurück