Java FileSystem

    java.io.FileSystem是一个抽象类,它抽象了对文件的操作,不同操作系统版本的JDK会实现其抽象的方法从而也就实现了跨平台的文件的访问操作。

    image-20191203164105238

    由此我们可以得出Java只不过是实现了对文件操作的封装而已,最终读写文件的实现都是通过调用native方法实现的。

    不过需要特别注意一下几点:

    Java NIO.2 文件系统

    image-20191203181206243

    NIO的文件操作在不同的系统的最终实现类也是不一样的,比如Mac的实现类是: sun.nio.fs.UnixNativeDispatcher,而Windows的实现类是sun.nio.fs.WindowsNativeDispatcher

    合理的利用NIO文件系统这一特性我们可以绕过某些只是防御了java.io.FileSystemWAF/RASP