Записать содержимое Arraylist в текстовый файл на Java - PullRequest
0 голосов
/ 02 марта 2012

Предположим, у меня ArrayList со следующим содержимым

public void add() {

    obj.add(1);
    obj.add(123456789);
    obj.add(1.222);
    obj.add(2.333);  

    obj.add(2);
    obj.add(9876541);
    obj.add(4.555);
    obj.add(7.888);



}

Я хочу, чтобы содержимое ArrayList было записано в текстовый файл следующим образом

1,123456789,1.222,2.333
2,9876541,4.555,7,888 

У меня есть следующий код для записи содержимого в файл

  public void createCSV() {

    try {
        FileWriter fos = new FileWriter(
                "/home/data.txt");
        PrintWriter out = new PrintWriter(fos);

        for (int i = 0; i < obj.size(); i++) {

            out.write(String.valueOf(obj.get(i)));
            out.write(",");

        }
        out.close();

    } catch (Exception e) {

    }
}

public static void main(String[] args) {

    JavaOp_CSV x = new JavaOp_CSV();
    x.add();
    x.createCSV();

}

На данный момент содержимое файла

1,123456789,1.222,2.333,

Кто-нибудь может предоставить мне логику для получения o / p, как упомянуто выше ?? Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 02 марта 2012

Используйте StringBuilder для построения строки, которую вы позже напишите в файл, и сохраните счет i для элементов.

, если i % 4 == 0 - добавить разрыв строки
else: добавьте ','.

Примечание. Необходимо избегать добавления новой строки в первом элементе и, возможно, в последнем, если total_num_elements % 4 != 0

Это может бытьлегко сделать после обработки, используя StringBuilder.deleteCharAt()

2 голосов
/ 02 марта 2012

Вы также можете попробовать org.apache.commons.lang.StringUtils, у него есть метод join, отвечающий вашим потребностям.

StringUtils.join(obj.toArray(), ',');

Или вы можете определить только первый элемент или последний элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...