2016-06-06 39 views
0

我有以下代码:把一排阵到一个数组

try { 
    CsvParserSettings parserSettings = new CsvParserSettings(); 
    parserSettings.setLineSeparatorDetectionEnabled(true); 
    RowListProcessor rowProcessor = new RowListProcessor(); 
    parserSettings.setRowProcessor(rowProcessor); 
    parserSettings.setHeaderExtractionEnabled(true); 
    CsvParser parser = new CsvParser(parserSettings); 

    parser.parse(new FileReader("C:\\Users\\Desktop\\GeoIPCountryWhois.csv")); 

    String[] headers = rowProcessor.getHeaders(); 
List<String[]> rows = rowProcessor.getRows(); 
for (int index = 0;index< rows.size();index++){ 
System.out.println(Arrays.toString(rows.get(index))); 
} 

} catch (FileNotFoundException ex) { 
    Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex); 
} 

这将创建阵列的一行每次 像下面

[1.0.1.0, 1.0.3.255, 16777472, 16778239, CN, China] 
[1.0.4.0, 1.0.7.255, 16778240, 16779263, AU, Australia] 
[1.0.8.0, 1.0.15.255, 16779264, 16781311, CN, China] 

但是我希望把我的数据到一个单个数组,我该如何做到这一点?

+0

你想在一个数组中的所有行? –

+0

你是什么意思“一个数组中的所有类”? – Bohemian

回答

1

你是一个数组的数组?

List<String[]> rows = rowProcessor.getRows(); 
String[][] rowsArray = rows.toArray(new String[rows.size()][]); //this contains an array of all your rows 

确认:

for (int i = 0; i < rowsArray.length; i++) { 
    System.out.println(Arrays.toString(rowsArray[i])); 
} 

这将使相同的输出你的。

1

也许你想是这样的..

List<String[]> rows = rowProcessor.getRows(); 

List<String> oneList = rows.stream().flatMap(Arrays::stream).collect(Collectors.toList()); 
String[] oneArray = oneList.toArray(new String[0]);