用Java编写Arraylist的内容到txt文件

时间:2012-03-02 09:43:42

标签: java arraylist

假设我有一个包含以下内容的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的内容写入txt文件中,如下所示

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 个答案:

答案 0 :(得分:3)

使用StringBuilder构建稍后写入文件的字符串,并对元素保持计数i

if i % 4 == 0 - 添加换行符
否则:添加','

注意:您需要避免在第一个元素处添加新行,如果total_num_elements % 4 != 0

,则可能避免添加最后一行

使用StringBuilder.deleteCharAt()

进行后期处理可以轻松完成

答案 1 :(得分:2)

你也可以试试org.apache.commons.lang.StringUtils,它有一个符合你需要的连接方法。

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

或者你只能确定它是第一个元素还是最后一个元素。