Java流forEach

时间:2017-07-06 14:31:47

标签: java foreach java-8 stream java-stream

我正在尝试使用streams和forEach逐行读取.CSV,但我无法使其正常工作。

public static void printFile(String file)
{
    try(Stream<String> stream = Files.lines(Paths.get(file)))
    {
        stream
            .filter(line -> line.startsWith("00"))
            .forEach(System.out::println);
    } catch (IOException ex) {
        Logger.getLogger(Facturation.class.getName()).log(Level.SEVERE, null, ex);
    }
}

“file”这是我的.CSV绝对路径。我尽力修复此代码,但我一直都遇到同样的错误。

  

线程“main”中的异常java.io.UncheckedIOException:java.nio.charset.MalformedInputException:输入长度= 1       在java.io.BufferedReader $ 1.hasNext(BufferedReader.java:574)       在java.util.Spliterators $ IteratorSpliterator.tryAdvance(Spliterators.java:1811)       at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)       at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)       at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)       at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)       at java.util.stream.FindOps $ FindOp.evaluateSequential(FindOps.java:152)       at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)       at java.util.stream.ReferencePipeline.findAny(ReferencePipeline.java:469)       at facturation.Facturation.factureFile(Facturation.java:65)       在facturation.Facturation.main(Facturation.java:43)

第43行是对我的函数printFile的调用,第65行是.forEach。

所以我的问题很简单,我做错了什么?

0 个答案:

没有答案