我已经尝试使用CSVWriter将我的数据库表导出为CSV。
但是我的表包含BLOB数据。如何将它们包含在我的导出中?
然后,我将使用CSVReader导入导出的CSV。谁能分享一些概念?
这是我的导出代码的一部分
ResultSet res = st.executeQuery("select * from "+db+"."+obTableNames[23]);
int colunmCount = getColumnCount(res);
try {
File filename = new File(dir,""+obTableNames[23]+".csv");
fw = new FileWriter(filename);
CSVWriter writer = new CSVWriter(fw);
writer.writeAll(res, false);
int colType = res.getMetaData().getColumnType(colunmCount);
dispInt(colType);
fw.flush();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:2)
您是否看过Apache提供的encodeBase64String(byte[] data
)中的Base64
方法?
使用base64算法对二进制数据进行编码,但不会对输出进行分块。
这应该允许您返回表示二进制大对象的编码字符串并将其合并到CSV中。
然后另一方的人可以使用decodeBase64String(String data)
重新获得BLOB。