use Blob.getBytes. From there see
http://mindprod.com/applets/fileio.html
for how you might decode it, and write it as a string, or write it as
raw bytes.
XML is a character string so it properly belonged in a Clob, not a
Blob.
you have to be a bit careful!!.
if it's in a clob and you are on oracle and your NLS language is set
incorrectly , your database will translate the content of it's clobs to a
different codepage, which might include conversion from single byte to
multibyte character sets.
sometimes , i might want to have chinese characters on my oracle database, i
generally write them to a blob , so that the database does not tanslate and
interpret them as single byte, instead of multibyte.
that said:
this is the code to get a blob , the "photo" is stored in the content field
of the database.
just modify the "bo" to a file stream
public static byte[] getPhoto(long photoId) throws Exception {
static final int MAXBUFSIZE = 4096;
Section section = null;
PreparedStatement st = null;
ResultSet rset = null;
try {
String sql =
"Select content from photo_store where deleted=0 and
id=?";
st = c.prepareStatement(sql);
st.setLong(1, photoId); // Bind the photo id
////Oracle
rset = st.executeQuery(); // Execute Query
oracle.sql.BLOB blob = null;
if (rset.next()) /*this is always true*/ {
blob = (oracle.sql.BLOB) rset.getObject(1);
}
if (blob != null) {
BufferedInputStream bis =
new BufferedInputStream(blob.getBinaryStream());
ByteArrayOutputStream bo = new ByteArrayOutputStream();
byte[] buf = new byte[MAXBUFSIZE];
int n = 0;
while ((n = bis.read(buf, 0, MAXBUFSIZE)) != -1) {
bo.write(buf, 0, n);
}
bo.flush();
bo.close();
bis.close();
buf = null;
return bo.toByteArray();
}
} catch (Exception ex) {
Error_stuff.handleError(ex, -1, -1);
// ex.printStackTrace();
} finally {
if (st != null) {
try {
st.close();
} catch (Exception ex1) {
Error_stuff.handleError(ex1, -1, -1);
}
}
}
return null;
}