java - Reading and Writing to ChannelBuffer is not working properly -
i want read binary data stored in channelbuffer object contained in httpresponse. have tried below code read , save channelbuffer, not working. correct way of reading binary data stored in channel buffer?
channelbuffer chanbuff = response.getcontent(); fileoutputstream outputstream = new fileoutputstream(outputfilename); outputstream.write(chanbuff.array()); outputstream.close(); the above code throws exception chanbuff.array() (unsupportedoperationexception). not sure correct way of copying byte array channelbuffer.
the purpose of storing content (e.g. media) save , transcode it. consistently getting saved file size zero.
i intend copy processed data http response via channelbuffer. writing http message, have below code. code throws arrayoutofboundexception. correct approach here?
channelbuffer dynamicbuffer = dynamicbuffer(); dynamicbuffer.clear(); dynamicbuffer.ensurewritablebytes(filelen); channelbufferoutputstream buffoutstream = new channelbufferoutputstream(dynamicbuffer); byte[] bytebuf = new byte[4096]; int bytesread = -1; int offset = 0; while ((bytesread = instream.read(bytebuf)) != -1) { buffoutstream.write(bytebuf, offset, bytesread); offset += bytesread; } response.setcontent(empty_buffer); response.setcontent(buffoutstream.buffer()); response.setheader("content-type", conttype); response.setheader("content-length", filelen); is correct approach?
in second example should not keep increasing offset. that's offset buffer, not file. should use 0 offset throughout.
Comments
Post a Comment