我想知道为什么java.nio基于静态方法,我的意思是在java.io中,你创建一个文件然后使用它的方法,像这样:
File file = new File("myFile");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String readLine = bufferedReader.readLine();
每个对象都有自己的方法。
java.nio 的工作方式不同,您需要使用静态方法,并强制始终将要处理的文件作为参数传递。
Path file = Paths.get("myFile");
BufferedReader bufferedReader = Files.newBufferedReader(file);
String readLine = bufferedReader.readLine();
Path source = Paths.get("source");
Path target = Paths.get("target");
Files.copy(source, target);
nio提供了实用方法(例如newBufferedReader)直接在类中使用,因此编写的代码更少。 但是也可以使用实例方法完成此操作,这样就不必将路径作为参数传递。
为什么要改变这种范式?有什么隐藏的优势呢?