我对Java API中流api提供的功能非常着迷。
我尝试使用流写文件,但它给出了一个例外。我想要一种方法来处理这个异常。我知道PrintWriter
有一个write()
方法,它不会抛出异常。我试图了解如何传递可以抛出异常的方法的策略。可能通过编写自己的自定义异常处理程序我正在研究这个问题,一旦完成,我将分享。
写入数据的方法
private static void writeDataToSecondFileWithJavaStreams(File inputFile) throws IOException {
Stream<String> fileData = Files.lines(Paths.get(inputFile.getParent(), inputFile.getName()));
File outputFile = new File(inputFile.getParent(),"outputFile1.txt");
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
// fileData.parallel();
// fileData.forEach(System.out::println); // this works perfectly fine
fileData.forEach(writer::write);
writer.close();
System.out.println("File writing completed");
}
而fileData.forEach(System.out::println)
完全正常,但我不想将数据写入控制台而不是输出文件。
我在fileData.forEach(writer::write);
这一行收到错误 UnHandled IOException 。我知道它是因为forEach期望一个lambda函数不会抛出任何异常。
关于如何使其发挥作用的建议?