读取数据时,我的文件打开正确但该文件被读错

读取数据时,我的文件打开正确但该文件被读错

问题描述:

String fileName = "MSFT.csv"; 
    File file = new File(fileName); 
    try{ 
     Scanner inputStream = new Scanner(file); 
     while(inputStream.hasNext()){ 
      String data = inputStream.next(); 
      System.out.println(data); 
     } 
     inputStream.close(); 
    } 
    catch(FileNotFoundException e){ 
     e.printStackTrace(); 

我试图从csv文件中读取,当我运行此代码,以确保该文件是正确读取所有逗号分隔的数据正确显示,但第一行除外。正在输出文件的第一行,每个单词位于不同的行上。我在初次阅读文件时做了什么错误?读取数据时,我的文件打开正确但该文件被读错

我输出的例子去为: 时间戳, 接近, 高, 低, 开放, 值, 9:30,57.515,57.57,57.47,57.515,31120 现在所有的我的话在这种情况下,在Excel文件中的同一行上,但是当我运行时间戳,关闭,高等等都出现在不同的行,所以我不知道为什么它看起来像这样。

+0

有一个CSV阅读器库。在这种情况下,首先执行'hasNextLine()'。 –

+0

不太确定你的意思,用hasNextLine()替换我的hasNext()? –

扫描仪hasNext定义如下:

hasNext()如果此扫描器的输入中有另一个标记,则返回真。

所以,当你使用它时,你正在通过令牌读取你的csv文件令牌,而不是逐行。除此之外,使用扫描仪接下来执行以下操作:

next()从此扫描程序中查找并返回下一个完整标记。

,最后用System.out.println打印您的数据,这就是为什么它一直outputing每个令牌后,要到下一行后,将插入一个行分隔符。

如下更改您的代码,并预期它应该工作:

String fileName = "MSFT.csv"; 
File file = new File(fileName); 
try{ 
    Scanner inputStream = new Scanner(file); 
    while(inputStream.hasNextLine()){ 
     String data = inputStream.nextLine(); 
     System.out.println(data); 
    } 
    inputStream.close(); 
} catch(FileNotFoundException e){ 
    e.printStackTrace(); 
+0

非常完美,非常感谢。 –

+0

非常欢迎:) – alainlompo