【问题标题】:Export database tables(with BLOB) to CSV将数据库表(带 BLOB)导出为 CSV
【发布时间】:2012-08-16 22:21:30
【问题描述】:

有人可以教我如何使用 java 将带有 BLOB 的表导出为 CSV 吗?我稍后会导入它们。一些关于这个问题的概念和一些代码可以帮助解释事情。 谢谢。

【问题讨论】:

  • 所以你有一个表,其中一列是 BLOB,你想把整个表导出为 CSV?
  • 是的,我有一张表,其中一列是 BLOB。
  • 将 blob 转换为 Base64 后,我建议使用 OpenCSV 编写 CSV 文件。 opencsv.sourceforge.net
  • 所以,你的意思是我必须对我的表进行编码解码然后使用 CSVWriter?

标签: java csv export-to-csv


【解决方案1】:

如果是我,我只会对二进制数据进行编码,然后像其他字段一样将其写出来。 Apache Commons 有很好的 API。我会根据您的需要使用 Base32 或 Base64 二进制编码器。这可能被称为 URL 编码,但我不是 100% 确定......这个概念仍然相同,您仍然只是获取二进制数据并将其编码为字符串:

byte[] myBlobData = \\ Retrieve from database
Base32 encoder = new Base32();
String encodedData = encoder.encodeToString(myBlobData);
// Write out data as you normally would for a CSV file

然后将其读回,只需执行相反的操作:

String encodedData = \\ Read from file
byte[] myBlobData = encoder.decode(encodedData);

我认为这对你很有效。 URL 编码(或类似的编码)适用于此,因为它们旨在允许二进制数据作为字符串安全地传输。如果您不想使用 Apache Commons 库,您可以使用 Java 的 URLEncoder 来获得。

【讨论】:

  • +1 表示 Base64。 URLEncoder 仅适用于字符串,所以这不是一个真正的选择。
猜你喜欢
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 2013-07-02
  • 2013-12-20
  • 2021-08-16
  • 2012-12-22
  • 2023-03-10
相关资源
最近更新 更多