csv文件读取错误的列
问题描述:
我想读取我的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();
答
编辑 正如我在评论中规定的代码,
你可以使用一个不同的分隔符,比如分号,和 然后在你的代码中,你会将splitBy改为分号。这应该 工作,但后来它在技术上不是一个CSV文件(逗号分隔值 )
因为当你简单的写Times.perMinute(1,15)代码解析它为2个值:
第一个是'Times.perMinute(1'
和第二'15)'
另外请阅读RFC:
开始=>
- 含有换行符(CRLF),双引号,和逗号 字段应该被包含在双引号。
如果可能,生成带有非ASCII分隔符的csv文件。在java中,你可以使用'char separator = 1;' – shanmuga