1

我已经尝试使用 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();
}
4

1 回答 1

2

您是否看过Apache 提供的encodeBase64String(byte[] data)方法?Base64

使用 base64 算法对二进制数据进行编码,但不对输出进行分块。

这应该允许您返回代表您的二进制大对象的编码字符串并将其合并到您的 CSV 中。

然后,另一边的人可以使用decodeBase64String(String data)BLOB 再次取回。

于 2012-08-24T12:07:51.197 回答