2011-06-23 102 views

回答

3

你可以假設每一行是String類的和讀到的一切到一個二維數組。之後,您可以嘗試將字符串解析爲適當的格式。

但是,如果您不知道行數據類型,這只是一個猜測。

2

如果你不知道什麼是列代表你只能像閱讀文本:

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]等)。

2

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(); 
相關問題