读取数据时,我的文件打开正确但该文件被读错
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文件中的同一行上,但是当我运行时间戳,关闭,高等等都出现在不同的行,所以我不知道为什么它看起来像这样。
扫描仪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();
非常完美,非常感谢。 –
非常欢迎:) – alainlompo
有一个CSV阅读器库。在这种情况下,首先执行'hasNextLine()'。 –
不太确定你的意思,用hasNextLine()替换我的hasNext()? –