java - 使用 CSVWriter 导出带有 BLOB 的数据库表

标签 java

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

最佳答案

你看过encodeBase64String(byte[] data)吗?方法来自 Base64由 Apache 提供?

Encodes binary data using the base64 algorithm but does not chunk the output.

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

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

关于java - 使用 CSVWriter 导出带有 BLOB 的数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108934/

相关文章:

java - 如何在java中设置jLabel不可点击

java - java.library.path Eclipse 中没有 sapjco3

Windows 8 的 Java System.properties 获取登录用户

Java JDK - 从 double 到 int 的可能有损转换

Java spring SseEmitter/ResponseBodyEmitter : detect browser reloads

Java - 如何检查 JFrame 是否关闭

java - AWS Lambda 会将您的闲置函数保留多长时间?

java - 向客户端广播消息

java - Android 菜单未出现在 Android Studio 的 "Tools"菜单下。怎么提出来呢?

java - org.eclipse.e4.core.di.InjectionException : Could not find satisfiable constructor 问题