Java 读取字段中带有逗号的csv文件时出现问题

Java 读取字段中带有逗号的csv文件时出现问题,java,csv,Java,Csv,我在读取字段中带有逗号的csv文件时遇到问题。当读取csv时,它会生成双引号,当数据传递到表中时,引号会重新排列不同列中值的位置。我使用“|”将表表示为视图,但它用逗号分隔 当它在excel中打开时 LD |LA| L| T |A Car Park Store,| |4a|South Bank Road | 当用代码打开时 LD |LA| L| T |A "C

我在读取字段中带有逗号的csv文件时遇到问题。当读取csv时,它会生成双引号,当数据传递到表中时,引号会重新排列不同列中值的位置。我使用“|”将表表示为视图,但它用逗号分隔

当它在excel中打开时

  LD            |LA| L|       T            |A

 Car Park Store,|  |4a|South Bank Road     |
当用代码打开时

  LD            |LA| L|       T            |A

"Car Park Store |" |  |       4a           |South Bank Road
这样做的目的是让它以excel中的方式显示

   public void readFromFile(){
   List<String> output = new ArrayList<String>();
  try{
    BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
    String line = "";

    while ((line = bufferedReader.readLine()) != null){
     output.add(line);
    }

    bufferedReader.close();

  } catch(FileNotFoundException fne){
    csvReaderErrorMessage +=  "File '" + filename + "' cannot be found.";

  }catch(IOException ioe){
    csvReaderErrorMessage +=  "Problem reading file: '" + filename+"'";
  }

  csvDataModel.setData(output);

 }
public void readFromFile(){
列表输出=新的ArrayList();
试一试{
BufferedReader BufferedReader=新的BufferedReader(新文件读取器(文件名));
字符串行=”;
而((line=bufferedReader.readLine())!=null){
输出。添加(行);
}
bufferedReader.close();
}捕获(FileNotFoundException fne){
csvReaderErrorMessage+=“找不到文件名+”;
}捕获(ioe异常ioe){
csvReaderErrorMessage+=“读取文件时出现问题:”“+filename+””;
}
csvDataModel.setData(输出);
}

您给出的代码根本不解析文件。它把它分成几行,但它只做这些

您应该将行解析为值——幸运的是,您不需要自己编写太多代码来完成这项工作。图书馆喜欢,并使之容易

因此,在解析之后,您将拥有一个行的集合,每个行都是一个值的集合。您可能希望创建一个类来处理每一行,以便更干净地处理数据。您应该能够在Swing UI中很好地格式化它,而不会在值之间显示“|”之类的内容


尽可能以适当的形式处理数据是很重要的——因此,当您读取文件时,尽可能早地完成所有解析工作(当然,除非您有很好的理由不这样做)——这样,您的其余代码可以更干净。您的UI代码不应该关心您是否碰巧从CSV文件加载了数据。

您给出的代码根本不解析该文件。它把它分成几行,但它只做这些

您应该将行解析为值——幸运的是,您不需要自己编写太多代码来完成这项工作。图书馆喜欢,并使之容易

因此,在解析之后,您将拥有一个行的集合,每个行都是一个值的集合。您可能希望创建一个类来处理每一行,以便更干净地处理数据。您应该能够在Swing UI中很好地格式化它,而不会在值之间显示“|”之类的内容


尽可能以适当的形式处理数据是很重要的——因此,当您读取文件时,尽可能早地完成所有解析工作(当然,除非您有很好的理由不这样做)——这样,您的其余代码可以更干净。您的UI代码不应该关心您刚开始从CSV文件加载数据的情况。

您所说的表格是什么意思?你说的是摇摆台吗?输出变量只是一个字符串列表。阅读每一行后,您是否调试了此列表的外观?@RNJ我指的是swing table。您所说的table是什么意思?你说的是摇摆台吗?输出变量只是一个字符串列表。阅读每一行后,您是否调试了此列表的外观?@RNJ am指的是swing table。