J'ai une application qui permet à l'utilisateur de signer la tablette et une image sera produite. Cette partie, j'ai travaillé avec la confirmation que je suis capable de voir les images après qu'ils ont été créés et enregistrés. Je les écris dans un fichier .csv avec le code suivant.Comment obtenir CSVWriter pour ajouter des données BLOB dans la cellule
//region - Create CSV file
writer = new CSVWriter(new FileWriter(sdCardPath + "Orders_Summary_Report.csv"), ',', CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.DEFAULT_ESCAPE_CHARACTER, "\r\n");
//writer.writeNext(CSVcursor.getColumnNames()); //Write the column headings first before the looping starts
String [] headings = ("Order Id,Item ID,Item Name,Item Price,Item Count,Item Total,Paid Amount,VOID Order,Payment Method,Order Signature,Member/Authorization,Tab Number,Order Time").split(",");
writer.writeNext(headings);
for(CSVcursor.moveToFirst(); !CSVcursor.isAfterLast(); CSVcursor.moveToNext()) //Loop through all results (use row count of table)
{
String[] entries = (CSVcursor.getInt(CSVcursor.getColumnIndex("orderId"))+ ","
+CSVcursor.getInt(CSVcursor.getColumnIndex("itemId"))+ ","
+CSVcursor.getString(CSVcursor.getColumnIndex("itemName"))+ ","
+CSVcursor.getString(CSVcursor.getColumnIndex("itemPrice")) + ","
+CSVcursor.getInt(CSVcursor.getColumnIndex("itemCount"))+ ","
+CSVcursor.getString(CSVcursor.getColumnIndex("itemTotal"))+ ","
+CSVcursor.getString(CSVcursor.getColumnIndex("orderPaid"))+ ","
+CSVcursor.getInt(CSVcursor.getColumnIndex("orderVoid"))+ ","
+CSVcursor.getString(CSVcursor.getColumnIndex("orderType"))+ ","
+CSVcursor.getBlob(CSVcursor.getColumnIndex("orderSignature"))+ ","
+CSVcursor.getString(CSVcursor.getColumnIndex("referenceId"))+ ","
+CSVcursor.getInt(CSVcursor.getColumnIndex("orderTab"))+ ","
+CSVcursor.getString(CSVcursor.getColumnIndex("orderTime"))).split(","); //Split the string by the delimiter
writer.writeNext(entries); //Write current row of DB to file
writer.flush(); //Flush the stream
}
writer.close();
Le fichier est écrit à se succès, mais quand je considère le fichier .csv, la colonne qui permet de sauver les données blob ressemble à ceci.
B @ 2342342 B @ 2123982 B @ 3952929
On dirait que je suis tout simplement sauver la signature ou un autre attribut du fichier plutôt que le fichier lui-même. Dois-je diffuser le blob par bit/buffer dans le fichier csv?
Une solution plus typique serait de sauvegarder l'image dans un fichier séparé. Sinon, vous devrez décider comment transformer le 'byte []' de votre colonne BLOB en une représentation de chaîne, puis placez la chaîne dans votre fichier CSV. – CommonsWare