Как экспортировать данные в файл csv на Android?

Я создал CSV-файл в следующем формате, который я собираюсь вывести на SD-карту устройства:

Ship Name,Scientist Name,Scientist Email,Sample Volume,Sample Colour,Longitude,Latitude,Material,Date

Каждое значение в csv будет иметь тип string, за исключением последнего значения даты. Имя CSV-файла - AnalysisData.csv.

Я просмотрел примеры в Stackoverflow, например, Экспортировать мои данные в файле CSV из приложения android, но при этом создается новый файл, который мне не нужен.

Я уже добавил банку opencsv в свой проект, поэтому мне нужен соответствующий пример.

Есть ли у кого-нибудь советы по достижению этого в Android?


person Brian J    schedule 05.01.2015    source источник


Ответы (1)


Попробуйте использовать этот фрагмент кода:

  String baseDir = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
  String fileName = "AnalysisData.csv";
  String filePath = baseDir + File.separator + fileName;
  File f = new File(filePath);
  CSVWriter writer;

  // File exist
  if(f.exists()&&!f.isDirectory())
    {
      mFileWriter = new FileWriter(filePath, true);
      writer = new CSVWriter(mFileWriter);
    }
  else
    {
      writer = new CSVWriter(new FileWriter(filePath));
    }

    String[] data = {"Ship Name", "Scientist Name", "...", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").formatter.format(date)});

  writer.writeNext(data);

  writer.close();
person Cool    schedule 05.01.2015
comment
Приведенный выше код работал ... но как я могу отформатировать csv так, чтобы данные отображались под заголовком данных? В настоящий момент данные выводятся вместе с именем поля, как это "Ship Name","Maria" "Scientist Name","Joh Doe" Это код, который я использую для добавления данных data.add(new String[] {"Scientist Name", analystName});, но формат неправильный, возможно, я могу использовать новый формат строки? - person Brian J; 05.01.2015
comment
используйте writeNext opencsv .sourceforge.net / apidocs / au / com / bytecode / opencsv /. - person Cool; 05.01.2015
comment
Не могли бы вы показать мне пример того, как я могу применить write.next к приведенному выше коду? - person Brian J; 05.01.2015
comment
@BrianJ проверьте мое редактирование, вы должны добавить цикл для добавления нескольких строк - person Cool; 05.01.2015
comment
Позвольте нам продолжить это обсуждение в чате. - person Brian J; 05.01.2015
comment
Это должно быть FileWriter mFileWriter = new FileWriter (filePath, true); и должен быть окружен попыткой поймать - person wwjdm; 08.03.2017
comment
К вашему сведению, у меня было предупреждение Gradle для зависимости общего журнала CSVWriter при добавлении com.opencsv: opencsv: 4.0. - person LordParsley; 15.08.2017
comment
скомпилировать 'com.opencsv: opencsv: 4.0' - person Aderbal Nunes; 05.10.2017
comment
Привет @Abdellah, я не могу создать файл csv в android, моя работа заключается в том, чтобы создать файл csv нажатием кнопки и вставить в него данные с помощью pojo, пожалуйста, помогите мне. Я добавил банку opencsv в свой проект Android - person Abhishek kumar; 31.01.2018
comment
что такое CSVWriter ?? - person Hossein Kurd; 13.03.2019
comment
@AndroSco проверьте это: opencsv.sourceforge.net/apidocs/com/opencsv/CSVWriter .html - person Cool; 13.03.2019