当前位置: 首页 > 面试题库 >

Java将新列追加到csv文件

扶隐水
2023-03-14
问题内容

我想计算一些列数据并将其csv作为列写入文件。然后,在计算了另一列数据之后,我想将其附加到同一文件中,但作为新列。

这是我所做的:

try {
    FileWriter writer = new FileWriter(OUT_FILE_PATH, true);
    for (int i=0; i<data.size(); i++) {
        writer.append(String.valueOf(data.get(i)));
        writer.append(",");
        writer.append("\n");
    }
    writer.flush();
    writer.close();
} catch (Exception e) {}

结果-它将新列追加到第一列下方,因此我只有一个长列。

谢谢,


问题答案:

您将必须逐行读取文件,然后将新列插入每一行。这是使用BufferedReader和BufferedWriter的解决方案

public void addColumn(String path,String fileName) throws IOException{
    BufferedReader br=null;
    BufferedWriter bw=null;
    final String lineSep=System.getProperty("line.separator");

    try {
        File file = new File(path, fileName);
        File file2 = new File(path, fileName+".1");//so the
                    //names don't conflict or just use different folders

        br = new BufferedReader(new InputStreamReader(new FileInputStream(file))) ;
        bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file2)));
        String line = null;
                    int i=0;
        for ( line = br.readLine(); line != null; line = br.readLine(),i++)
        {

            String addedColumn = String.valueOf(data.get(i));
            bw.write(line+addedColumn+lineSep);
    }

    }catch(Exception e){
        System.out.println(e);
    }finally  {
        if(br!=null)
            br.close();
        if(bw!=null)
            bw.close();
    }

}


 类似资料:
  • 问题内容: 我用谷歌搜索了一段时间,但似乎找不到它,这应该很容易。我想将CR添加到使用Transformer创建的XML文件的末尾。有没有办法做到这一点> 我尝试了以下操作,但这导致空白文件? 问题答案: 简单…只需添加append选项:

  • 问题内容: 假设您有一些AppendObjectOutputStream类(这是一个ObjectOutputStream!),它重写了writeStreamHeader(),如下所示: 现在,假设您打算将多个对象保存到一个文件中。程序每次运行时,一个对象。即使在第一次运行时,您是否也会使用AppendObjectOutputStream()? 问题答案: 您必须首先使用常规ObjectOutput

  • 假设您有一些AppendObjectOutputStream类(这是一个ObjectOutputStream!)将重写writeStreamHeader(),如下所示: 现在,假设您计划将多个对象保存到一个文件中;每次程序运行一个对象。即使在第一次运行时,您也会使用AppendObjectOutputStream()吗?

  • 问题内容: 我当前正在提取war文件的内容,然后将一些新文件添加到目录结构中,然后创建一个新的war文件。 所有这些都是通过Java以编程方式完成的-但我想知道,复制war文件然后追加文件是否会更有效-那么只要战争扩大,我就不必等待,再次被压缩。 但是,在文档或任何在线示例中,我似乎都找不到找到此方法的方法。 任何人都可以给一些提示或指示吗? 更新: 答案之一中提到的TrueZip似乎是一个非常好

  • 我试图将csv文件中的行添加到数组中,但出现错误。文件读取器带来了“未找到文件”异常和AllPlatform。add(Arrays.asList(values))正在标记错误所需的类型(平台),提供的字符串。 这是一个标准项目,我被要求不要更改csv文件的目录 这是我的密码游戏。JAVA 平台。JAVA platforms.csv

  • 在我的用例中,我需要一个find a way将键/值对追加到现有序列文件中。怎么做?任何线索都会大有帮助。我正在使用Hadoop2X。