我必須閱讀在java中的CSV文件,我GOOGLE了它,但我有辦法閱讀使用標題;但是我沒有關於文件中列標題和列數的信息。 在這種情況下我如何讀取CSV文件。如何在不知道使用java知道頭文件的情況下讀取csv文件?
感謝
我必須閱讀在java中的CSV文件,我GOOGLE了它,但我有辦法閱讀使用標題;但是我沒有關於文件中列標題和列數的信息。 在這種情況下我如何讀取CSV文件。如何在不知道使用java知道頭文件的情況下讀取csv文件?
感謝
你可以假設每一行是String類的和讀到的一切到一個二維數組。之後,您可以嘗試將字符串解析爲適當的格式。
但是,如果您不知道行數據類型,這只是一個猜測。
如果你不知道什麼是列代表你只能像閱讀文本:
final BufferedReader br = new BufferedReader(new FileReader(file));
String line = null;
while ((line = br.readLine()) != null) {
final String[] lineValues = line.split(COLUMN_DELIMITER);
}
這樣,所有的列值將是這些lineValues
陣列(COLUMN1將lineValues [ 0]等)。
Casper datasets可以做到這一點是幾行,並會返回一個CDataRowSet,它以類似於ResultSet的方式工作。它可以從文件中讀取頭,並返回所有字符串,如:
CBuilder builder = new CBuildFromFile(new File("people.csv"));
CDataCacheContainer container = new CDataCacheContainer(builder);
CDataRowSet cdrs = container.getAll();
,或者它也可以縮小返回結果到儘可能小的數據類型不失保真度。這樣做也可以處理缺失的整數和雙精度(否則結果數據類型將保持爲字符串),例如:
CBuilder builder = new CBuildNarrowedFile(new File("people.csv")).setConvertMissing(true);
CDataCacheContainer container = new CDataCacheContainer(builder);
CDataRowSet cdrs = container.getAll();
閱讀到什麼?如果您不知道字段的含義或有多少字段,那麼您讀取的CSV是什麼? – Lazarus
或http://opencsv.sourceforge.net/ – JoseK