2016-04-17 4 views
1

У меня есть приложение, которое позволяет пользователю подписывать планшет, и изображение будет создано. В этой части я работаю с подтверждением, так как я могу просматривать изображения после их создания и сохранения.Как получить CSVWriter для добавления данных blob в ячейку

Я пишу их в CSV-файл со следующим кодом.

//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(); 

Файл становится успешно записан, но при просмотре файла CSV, столбец, который сохраняет данные блоб выглядит следующим образом.

B @ 2342342 B @ 2123982 B @ 3952929

Это выглядит, как будто я просто спасая подпись или какой-либо другой атрибут файла, а не сам файл.

Нужно ли передавать поток blob by bit/buffer в файл csv?

+1

Более типичным решением было бы сохранить изображение в виде отдельного файла. В противном случае вам нужно будет решить, как превратить 'byte []' из вашего столбца BLOB в некоторое строковое представление, а затем поместить строку в ваш CSV-файл. – CommonsWare

ответ

0

Просто эхо @CommonsWare. Правильная вещь - сохранить blob на диск как изображение. Таким образом, он может быть легко извлечен для вложения в файл, если это необходимо. Я по-прежнему сохраняю свои изображения в db как капли и просто показываю их в виде. Если вы хотите поместить эти файлы в csv, я бы рассмотрел другой тип, например pdf.

Смежные вопросы