有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

我正在尝试用java读取csv文件。下面是我的代码

final BufferedReader bufferedReader = new BufferedReader(new 
    InputStreamReader(file.getInputStream(entry)));
String line = "";

while ((line = bufferedReader.readLine()) != null) {
    System.out.println("line" + line);

    final String[] rows = line.split(",");

这是我的csv文件

" 9:42:43AM","Aug 20, 2015","RaceSummary","Page:1","Id","Race","Type","Rot.","District","PrideFor","ArtSeq","ReportSeq","Content","Type","Md","Bar Group","1","LINC ADAPTER SECTION 4","Content","N","A - ARLIN","1","1","1","Oscar James, Sr.","Content","0","<N.P.>"

我正在尝试打印我在csv中提到的列。但我不知道为什么我的输出会变成一行“骄傲”和另一行“For”,就像在接下来的两个值(“ArtSeq”、“ReportSeq”)中重复的那样。谁能告诉我哪里出了错。 谢谢


共 (2) 个答案

  1. # 1 楼答案

    根据你提供的结果

    line" 9:42:43AM","Aug 20, 2015","Race Summary","Page: 1","Id","Race","Type","Rot.","District","Pride 
    lineFor","Art lineSeq","Report lineSeq","Content","Type","Md","Bar Group","1","LINC ADAPTER SECTION 4","Content","N","A - ARLIN","1","1","1","Oscar James, Sr.","Content","0","<N.P.>" 
    

    考虑到它与您的输入不同,我猜输入文件中可能有一个特殊字符或其他内容(例如,制表符或换行符)。这会导致while循环读取第一行(直到换行),然后读取下一行。如果你把这两个放在文件的同一行,它可能会工作得更好

    我还要澄清一下,您发布的代码中没有任何内容会导致这种行为,它可能在代码的其他地方,也可能在文件本身中

  2. # 2 楼答案

    正如您在输入中看到的,第二个值是逗号“2015年8月20日”,这会导致比您预期的更多的拆分。 例子: 你会认为这部《9:42:43 AM》、《2015年8月20日》是两部,但它是三部

    [0]" 9:42:43AM"
    [1]"Aug 20
    [2] 2015"
    

    你可以把你的分裂变成

    line.split("\",\""); 
    

    我相信这会解决你的问题