csv文件读取错误的列

时间:2015-11-08 15:42:18

标签: java csv

我正在尝试阅读我的csv文件但是在csv中我必须独立于分隔符使用逗号,

"name1", 'U', Times.perMinute(1, 15), 'A', 1049*2.1,0,          Times.MINUTE*15, False, ['X'] 


"name2", 'U', Times.perHour(1),       'B', 1023*4,  1024*4,      Times.MINUTE*15, True,  ['Y','Z']  

我试着读第4列和第5列,但我的输出看起来很奇怪。我认为问题来自,。我该如何解决这个问题?

编辑:

我使用的代码

public static void main(String args[]) throws Exception {
         String splitBy = ",";
            BufferedReader br = new BufferedReader(new FileReader("rules.csv"));
            String line = br.readLine();
            while ((line = br.readLine()) != null) {
                String[] cols = line.split(splitBy);
                System.out.println("Uplink" + cols[4] + " ,Downlink" + cols[5]);
            }
            br.close();

1 个答案:

答案 0 :(得分:2)

修改 正如我的评论所述,

  

您可以使用不同的分隔符,例如分号,和   然后在您的代码中,您将splitBy更改为分号。那应该   工作,但从技术上讲,它不是一个csv文件(以逗号分隔   值)

因为当您只是编写Times.perMinute(1,15)时,您的代码会将其解析为2个值:

第一个是' Times.perMinute(1'

和第二个' 15)'

另请阅读RFC

  
      
  1. 包含换行符(CRLF),双引号和逗号的字段      应该用双引号括起来。
  2.