OpenCSV写入其他列

时间:2019-05-20 12:07:34

标签: java opencsv

我想读取CSV文件并将字符串写入同一csv文件中的下一列。

        FsmMorphologicalAnalyzer fsm = new FsmMorphologicalAnalyzer();

        try{
          CSVReader reader = new CSVReader(new FileReader("/Users/asus/Desktop/morfolojik-veri.csv"));
          CSVWriter writer = new CSVWriter(new FileWriter("/Users/asus/Desktop/morfolojik-veri.csv"), '\t');

          String [] nextLine;
          while ((nextLine=reader.readNext()) != null){

              if (nextLine != null) {
                  FsmParseList fsmParseList = fsm.morphologicalAnalysis(nextLine[0]);
                  if (fsmParseList.size() != 0) {
                      FsmParse parse = fsmParseList.getFsmParse(0);
                      String result = parse.root.toString();
                      String temp [] = {result.substring(0, result.indexOf(' '))};
                      writer.writeNext(temp);
                  }
                  else {
                      System.out.println("Nothing");
                  }
              }
          }

        }catch (Exception e){
            System.out.println(e);
        }

但是这会在我执行时清除所有文件。 它还向我显示警告:

csvwriter(java.io.Writer,char)已过时。

我应该将其写入新的csv,但我希望它们并排放置。就像第一列是已读列,第二列是已写列。

编辑:在程序启动之前,morfolojik-veri看起来像:

Before

What i want to see

但是我所需要的只是如何在新列中追加或写入新的csv文件。

(对不起我的英语) 谢谢。

1 个答案:

答案 0 :(得分:0)

我经常使用OpenCSV。你在做什么不是路要走。 只需读取输入文件,然后将其写入另一个/输出文件即可。

一旦完全完成(处理输入文件):
1)删除旧的/输入文件(或将其重命名为另一个无冲突的名称);
2)将新/输出文件重命名为旧文件名。

这就是您最容易做到的方式。