2017-04-22 107 views
1

Java: 我正在读取文件(csv)。像这样的结构: 1; Miller Hame; 1,2,3,4,5 ......; 1232323;Java Stream to String [] Array

现在我必须将它拆分为String [],所以我可以每行工作,并有与每一个“部分”

到目前为止我的代码:

 Stream<String> input = java.nio.file.Files.lines(java.nio.file.Paths.get("data.csv")); 
    String[] lines = input.skip(1) 

     .map(s->s.split(";")) 
     .toArray(String[]::new); 

其实我越来越java.lang.ArrayStoreException 。有人能帮我吗?

(是的,它是为家庭作业,但我不希望整体解决方案,只为工作的这个非常小的一部分。如果有提示,非常感谢!)

+6

你有一个'的String [] []'不是'的String []'。 –

+1

@BoristheSpider是的,用'.toArray(String [] [] :: new)替换'.toArray(String [] :: new);''应该可以。 –

回答

2

像这样的事情

Stream<String> input = Files.lines(Paths.get("src/data.csv")); 
String[][] lines = input.skip(1).map(s -> s.split(";")).toArray(String[][]::new); 

建议: 您不必键入类的完整路径。你可以导入它的。这是FilesPaths

import java.nio.file.Files; 
import java.nio.file.Paths;