2012-08-16 77 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