2
我試圖編寫一個方法,只是讀取CSV文件並存儲文件中的數據。這裏是一個鏈接到CSV文件,我想讀的截圖和代碼這種方法:讀取CSV文件期間發生問題讓我難堪
public static void correctPrices(String correctfile) {
String data;
Date date;
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
File correctedfile = new File(correctfile);
Scanner correct;
try {
correct = new Scanner(correctedfile);
correct.nextLine(); //to avoid reading the heading
ArrayList<Date> correctdate = new ArrayList<Date>();
ArrayList<String> correctdata = new ArrayList<String>();
while (correct.hasNext()) {
correctdata.add(correct.nextLine());
//data = correct.nextLine();
//String[] corrected = correct.nextLine().split(",");
//date = formatter.parse(corrected[0]);
//correctdate.add(date);
}
for (int i = 0; i < correctdata.size(); i++) {
System.out.println(correctdata.get(i));
}
}
catch (FileNotFoundException ex) {
Logger.getLogger(DataHandler.class.getName()).log(Level.SEVERE, null, ex);
}
}
正如預期的那樣,這個代碼將輸出的最後兩行的文件。但是,當我取消註釋數據= correct.nextLine();在while循環中,輸出將只返回CSV的第二行,而不是最後一行。我對此有點困惑?我試圖做的所有事情都是將行存儲到另一個變量中,爲什麼最後一行會被忽略?感謝您的幫助和時間,如果您需要任何其他信息,請告知我們!
這工作!謝謝。一旦我看到它,這是有道理的,但我想我正在將correct.nextLine()作爲一個變量本身,並沒有考慮指針增量。 – user1497013
是的,一個常見的錯誤。有狀態節目的許多樂趣之一。 – Daniel