函数式输入输出编程指南
1. 文件读取
在编程中,将程序设计为适应文件读取是相对简单的。FileReader类与ConsoleReader非常相似,唯一的区别在于静态工厂方法必须处理IOException,因此它返回的是Result<Input>而不是一个普通值。
以下是FileReader类的实现代码:
import com.fpinjava.common.Result; import java.io.*; public class FileReader extends AbstractReader { private FileReader(BufferedReader reader) { super(reader); } public static Result<Input> fileReader(String path) { try { return Result.success(new FileReader(new BufferedReader( new InputStreamReader(new FileInputStream(new File(path)))))); } catch (Exception e) { return Result.failure(e