2012-08-16 81 views
0

有人可以教我如何使用java将BLOB导出为CSV文件?然后我会导入它们。关于这个问题的一些概念将会做一些代码来帮助解释事情。 谢谢。将数据库表(带BLOB)导出为CSV

+0

因此,您有一张表,其中一列是一个BLOB,并且您希望将整个表导出为CSV? – dnault 2012-08-16 22:57:30

+0

是的,我有一个表,其中一列是BLOB。 – lawrence 2012-08-17 01:34:25

+0

将blob转换为Base64后,我建议使用OpenCSV编写CSV文件。 http://opencsv.sourceforge.net/ – dnault 2012-08-17 06:05:26

回答

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来获得。

+0

好的,我会试试看。谢谢。 – lawrence 2012-08-17 01:35:51

+0

Base64的+1。 URLEncoder只适用于字符串,所以这不是一个真正的选择。 – dnault 2012-08-17 06:03:01