problem using base64 encoder and InputStreamReader
Posted
by karoberts
on Stack Overflow
See other posts from Stack Overflow
or by karoberts
Published on 2010-05-30T01:04:17Z
Indexed on
2010/05/30
1:12 UTC
Read the original article
Hit count: 378
I have some CLOB columns in a database that I need to put Base64 encoded binary files in. These files can be large, so I need to stream them, I can't read the whole thing in at once.
I'm using org.apache.commons.codec.binary.Base64InputStream
to do the encoding, and I'm running into a problem. My code is essentially this
FileInputStream fis = new FileInputStream(file);
Base64InputStream b64is = new Base64InputStream(fis, true, -1, null);
InputStreamReader reader = new InputStreamReader(b64is);
preparedStatement.setCharacterStream(1, reader);
When I run the above code, I get one of these during the execution of the update
java.io.IOException: Underlying input stream returned zero bytes
, it is thrown deep in the InputStreamReader code.
Why would this not work? It seems to me like the reader
would attempt to read from the base 64 stream, which would read from the file stream, and everything should be happy.
© Stack Overflow or respective owner