hi!
habe ein problem mit dem ByteBuffer! ich bekomme ein per HTTP-post einen InputStream (data) der binäre
daten enthält. per while-schleife prüfe ich, wann der stream zu ende ist und schreibe die bytes ins byte-array "buffer". und nun mein problem: ich möchte daß bei jedem schleifendurchlauf der "buffer" in den
ByteBuffer "angehängt" wird, daß ich am ende den gesamten Stream im ByteBuffer habe. zu diesem zeitpunkt weiß
ich ja noch nicht wie groß der InputStream bzw. der ByteBuffer bzw. das byte-array "buffer" sein wird, deshalb möchte ich quasi ein
"dynamisches array".
funktioniert das nun mit ByteBuffer.wrap oder mit bb.put() oder überhaupt anders???
habe schon jede erdenkliche möglichkeit ausprobiert es funktioniert aber nicht.
oder weiß jemand eine bessere lösung? da bin ich mir sicher
danke für jede hilfe!!!
christian
habe ein problem mit dem ByteBuffer! ich bekomme ein per HTTP-post einen InputStream (data) der binäre
daten enthält. per while-schleife prüfe ich, wann der stream zu ende ist und schreibe die bytes ins byte-array "buffer". und nun mein problem: ich möchte daß bei jedem schleifendurchlauf der "buffer" in den
ByteBuffer "angehängt" wird, daß ich am ende den gesamten Stream im ByteBuffer habe. zu diesem zeitpunkt weiß
ich ja noch nicht wie groß der InputStream bzw. der ByteBuffer bzw. das byte-array "buffer" sein wird, deshalb möchte ich quasi ein
"dynamisches array".
funktioniert das nun mit ByteBuffer.wrap oder mit bb.put() oder überhaupt anders???
habe schon jede erdenkliche möglichkeit ausprobiert es funktioniert aber nicht.
oder weiß jemand eine bessere lösung? da bin ich mir sicher
danke für jede hilfe!!!
christian
Code:
InputStream data = new BufferedInputStream(conSocket.getInputStream());
OutputStream out = conSocket.getOutputStream();
ByteBuffer bb;
while(true)
{
if(data.available() < 1)
{
break;
}
buffer = new byte[1024];
data.read(buffer);
bb = ByteBuffer.wrap(buffer);
/* request-stream in file schreiben */
fileout.write(buffer,0,buffer.length);
/* response-stream schreiben */
out.write(buffer);
iCount++;
}