FileOutputStream -> byte[] (ohne File)

Status
Nicht offen für weitere Antworten.

andi24

Mitglied
Hallo,

ich erzeuge mir mit den Apache POI Klassen ein Excel-Dokument und übergebe dies an eine andere Klasse als byte Array (ByteArrayDataSource ). Als Rückgabeparameter der POI-Klasse erhalte ich einen FileOutputStream. Im Moment schreibe ich diesen auf die Festplatte und lese diesen dann über eine FileInputStream wieder ein. Siehe hier:

Code:
HSSFWorkbook excelObj;
.
File f = new File("c:\temp\anlage.xls");
FileOutputStream fileOut = new FileOutputStream(f);
excelObj.write(fileOut);
fileOut.close();

FileInputStream in = new FileInputStream(file);
BufferedInputStream reader = new BufferedInputStream(in, 4096);
int lenth = reader.available();
byte[] buf = new byte[lenth];
reader.read(buf, 0, lenth);
reader.close();
in.close();

ByteArrayDataSource bufSource = new ByteArrayDataSource(buf, "application/msexcel");

Geht das ganze auch ohne daß ich den Stream auf die Festplatte rauschreiben muß ?
Also quasi direkt vom FileOutputStream zum FileInputStream (oder besser als byte[]).

Danke & Gruß
Andi
 
B

Beni

Gast
Wo genau erhälst du von der POI-Klasse einen FileOutputStream als Rückgabewert? In deinem Codeschnippsel steht das jedenfalls niergends...

Verwende einen ByteArrayOutputStream, der schreibt direkt ein byte-Array.
 
S

SlaterB

Gast
HSSFWorkbook
void write(java.io_OutputStream stream)
Method write - write out this workbook to an Outputstream.

das geht auch mit ByteArrayOutputStream
 

andi24

Mitglied
@Beni

Steht doch in Zeile 6 (?)

@SlaterB

Und was mach ich mit dem ByteArrayOutputStream ?
Wie komme ich damit zu einem BufferedInputStream (das ist ja die eigentliche Frage) ?

Gruß
Andi
 
S

SlaterB

Gast
bisher hast du

FileOutputStream fileOut = new FileOutputStream(f);
excelObj.write(fileOut);
fileOut.close();

nun machst du darauf

ByteArrayOutputStream b= new ByteArrayOutputStream();
excelObj.write(b);
b.close();

so in etwa, vielleicht brauchts kein close() und noch ähnliche Änderungen,
schaue bei google nach Beispielen für ByteArrayOutputStream falls dir noch unbekannt

> Wie komme ich damit zu einem BufferedInputStream

brauchst du nicht, ByteArrayOutputStream liefert ein byte[], siehe API,
BufferedInputStream akzeptiert aber vielleicht auch ByteArrayOutputStream , siehe API

ok, komplette Antworten wären vielleicht schöner, hier gibts erstmal nur Hinweise ;)
 
B

Beni

Gast
andi24 hat gesagt.:
Steht doch in Zeile 6 (?)
Nein

.
.
.

Da übergibst du der Methode "write" einen OutputStream, aber "write" gibt garnichts zurück.

Code:
ByteArrayOutputStream out = new ByteArrayOutputStream();
excelObj.write( out );
out.close();

byte[] array = out.toByteArray();

Siehe auch hier

[Edit: uh, hab SlaterBs Antwort nicht gesehen, dann gibt es hier halt noch ein bisschen mehr Lösung :wink: ]
 

andi24

Mitglied
Danke euch Beiden !

@Beni


Das war die Lösung !
Ich werde mich bemühen meine Fragen genauer zu formulieren (wegen Rückgabewert), aber ich dachte man sieht es anhand von dem Beispielcode was ich meine ;-)


Ansonsten ist das mit Java so eine Sache, da programmiere ich MQSeries- und SAP-Anbindungen (in diesem Fall rufe ich einen Webservice zu einem Dokumenten Managment System auf), aber ich bekomme keine ByteArray hin :) In anderen Programmiersprachen gibt es nur Datentypen wie String, File und Character (usw.), den Rest programmiert man selber :) :) :)

Gruß
Andi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
noah1407 Fileoutputstream Java Basics - Anfänger-Themen 4
S Datei-Speicherort von FileOutputStream Java Basics - Anfänger-Themen 4
M Fileoutputstream: Linux Dateinamen mit Umlaute Java Basics - Anfänger-Themen 4
J FileOutputStream aktuelle Speicher Pfad ausgeben Java Basics - Anfänger-Themen 13
J FileOutputStream Java Basics - Anfänger-Themen 3
J FileOutputStream write Java Basics - Anfänger-Themen 19
A fileoutputstream ändern Java Basics - Anfänger-Themen 14
Corben Input/Output FileOutputStream - neue Zeile mit write(10) Java Basics - Anfänger-Themen 6
F FileOutputStream.write Java Basics - Anfänger-Themen 2
N FileOutputStream und existenz von Datei überprüfen Java Basics - Anfänger-Themen 2
O OOP FileOutputStream überschreibt ganzen inhalt der txt Java Basics - Anfänger-Themen 4
hdi Datentypen FileOutputStream#write(int) mit ints? Java Basics - Anfänger-Themen 5
J FileOutputStream richtige Pfadangabe? Java Basics - Anfänger-Themen 8
G FileOutputStream generieren Java Basics - Anfänger-Themen 2
M FileOutputStream und zu große Zahlen! Java Basics - Anfänger-Themen 10
C FileInputStream und FileOutputStream Java Basics - Anfänger-Themen 4
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
D Best Practice Parameter int vs byte Java Basics - Anfänger-Themen 16
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
N Datentypen Image zu Byte-Array Java Basics - Anfänger-Themen 4
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
F byte, short oder doch int? Java Basics - Anfänger-Themen 6
S Performance von byte[], short[], int[]..? Java Basics - Anfänger-Themen 24
D Methoden int to byte array und zurück? Java Basics - Anfänger-Themen 5
P int zu byte Java Basics - Anfänger-Themen 8
F Byte Array wachsen lassen Java Basics - Anfänger-Themen 5
M Java Klasse Byte Java Basics - Anfänger-Themen 10
F Byte Ausgabe plötzlich falsch Java Basics - Anfänger-Themen 0
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
O Input/Output Ein (negatives) Byte über PrintWriter hinausschreiben Java Basics - Anfänger-Themen 3
T byte[] zu String mit Sonderzeichen Java Basics - Anfänger-Themen 2
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
J byte - Ausgabe Java Basics - Anfänger-Themen 2
F Teil eines Byte Array an eine Methode übergeben Java Basics - Anfänger-Themen 5
S byte to float Java Basics - Anfänger-Themen 4
J Byte Folge erkennen Java Basics - Anfänger-Themen 5
M sehr großes Byte Array Java Basics - Anfänger-Themen 3
M Byte Array und Co. Java Basics - Anfänger-Themen 12
T Operatoren Float in byte umwandeln Java Basics - Anfänger-Themen 3
Y File to byte[] and byte[] to sysout Java Basics - Anfänger-Themen 3
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
F Hexfolge in Byte Array ersetzen Java Basics - Anfänger-Themen 8
P String in byte konvertieren, wie? Java Basics - Anfänger-Themen 4
T Erste Schritte Byte Java Basics - Anfänger-Themen 3
R byte[] zu String und Ausgabe Java Basics - Anfänger-Themen 2
H Variablen short <-> byte[] Java Basics - Anfänger-Themen 15
X Datentypen String in byte[] Java Basics - Anfänger-Themen 29
H Variablen 32bit Zählwert als Byte-Array Java Basics - Anfänger-Themen 9
H Variablen string nach byte Java Basics - Anfänger-Themen 12
B Frage zur Effizienz von read und read(byte[]) Java Basics - Anfänger-Themen 23
R Erste Schritte Rechnenoperationen mit byte, short und char Java Basics - Anfänger-Themen 8
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
S Von byte[] nach String zurueck nach byte[]. Arrays sind nicht identisch :( Java Basics - Anfänger-Themen 6
S ArrayList<Byte> in String umwandeln Java Basics - Anfänger-Themen 5
V unsigned byte? Java Basics - Anfänger-Themen 27
M byte Array Mindestlänge Java Basics - Anfänger-Themen 19
U short[] nach byte[] Java Basics - Anfänger-Themen 11
D [jni] jbytearray <-> byte array Java Basics - Anfänger-Themen 8
S Datentypen Ändern eines byte[] Arrays Java Basics - Anfänger-Themen 4
B byte-weise Verschlüsselung Java Basics - Anfänger-Themen 6
P byte Array aus ImageIcon Java Basics - Anfänger-Themen 10
S Input/Output String in byte umwandeln? Java Basics - Anfänger-Themen 5
F von Byte zu 2 Stellig Hex Java Basics - Anfänger-Themen 3
G byte[] (Base64) korrekt übergeben Java Basics - Anfänger-Themen 4
V Jar-Datei von Byte-Array oder Stream laden? Java Basics - Anfänger-Themen 9
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
G Binär in Byte speichern Java Basics - Anfänger-Themen 7
T Datentypen byte -Division..mal gehts mit cast mal ohne Java Basics - Anfänger-Themen 5
T Datentypen default ist int, cast zu byte nötig... Java Basics - Anfänger-Themen 2
F Byte nach Zahl umwandeln Java Basics - Anfänger-Themen 11
E Datentypen type cast problem (int, byte,) Java Basics - Anfänger-Themen 5
T Datentypen unsigned byte? Java Basics - Anfänger-Themen 9
G Integar zu Byte Java Basics - Anfänger-Themen 4
P Byte mit 0...255? Java Basics - Anfänger-Themen 5
N Datentypen Fehler beim Umwandeln in byte Java Basics - Anfänger-Themen 3
L Umwandlung int <--> byte Java Basics - Anfänger-Themen 2
L Datentypen 250 und byte? Java Basics - Anfänger-Themen 4
L Datentypen byte[] in String und wieder zurück Java Basics - Anfänger-Themen 3
H Datentypen Byte-Array RSA Java Basics - Anfänger-Themen 9
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
V Byte -> String -> Byte verlustfrei Java Basics - Anfänger-Themen 12
Hindi93 Byte to Int Java Basics - Anfänger-Themen 4
H Datentypen byte[] to int Java Basics - Anfänger-Themen 9
S hex zu byte Java Basics - Anfänger-Themen 4
M Byte Array: Werte größer 127? Java Basics - Anfänger-Themen 11
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
H 1 Byte Status Variable Java Basics - Anfänger-Themen 3
P Datentypen Byte und char Typecast Java Basics - Anfänger-Themen 2
M Bit/Byte Operationen Java Java Basics - Anfänger-Themen 8
W Datentypen int -> byte Java Basics - Anfänger-Themen 2
H Datentypen Byte-Array aus Stream lesen Java Basics - Anfänger-Themen 3
F Typenumwandlung byte <=> int verstehen Java Basics - Anfänger-Themen 3
S Byte eines arrays Java Basics - Anfänger-Themen 17

Ähnliche Java Themen


Oben