Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > как записать данные в csv


Автор: AlexGross 8.1.2011, 01:02
доброго времени суток!

являсь ещё совсем  новичком, я столкнулся с такой проблемой:

мне нужно записывать поступающие данные в csv файл
и я не знаю как я могу задать в какой именно столбец они должны быть внесены 
одна строка состоит из 10 столбцов, но не всегда все заполняются

и в целом за совет как это вообще лучше сделать был бы очень благодарен
заранее спасибо

Автор: _Y_ 8.1.2011, 13:47
Например так. Делаем строковый массив на 10 элементов и заполняем его пустыми значениями (заполняем каджый раз когда собираем новую строку):
Код

String[] str = new String[10];
for(int i = 0; i < 10; i++) str[i] = "";

Вставляем нужные значения на нужные места. Например, численную величину flt в позицию pos:
Код

str[pos] = flt;


Далее выводим в файл. Как выводить текст в файл смотрим http://www.exampledepot.com/egs/java.io/WriteToFile.html или http://www.javadb.com/write-to-file-using-bufferedwriter. Каждую строку выводим так:
Код

writer.write(str[0]);
for(int i =1; i < 10; i++)  writer.write("," + str[i]);
writer.newLine();


Если все выводимые значения имеют один и тот же тип, можно и без строкового массива, а с массивом, соответстующим данному типу. Например, если значения обычные целочисленные:

Код

Integer[] intOut = new Integer[10];
..................
intOut[pos] = flt;
...........
for(int i =0; i < 10; i++)  {
      if(i != 0) writer.write(",");
      if(intOut[i] != null) writer.write(intOut[i].toString());
}
writer.newLine();

Перед сборкой каждой строки массив надо перезаполнять значениями null.

Эти вариатны не самые оптимальные, но, наверное, самые простые.

Вообще же, вариантов миллион smile Успеха!



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)