Prior to the Java SE 7 release, the java.io.File class was the mechanism used for file I/O, but it had several drawbacks.
rename method didn't work consistently across platforms.File methods didn't scale. Requesting a large directory listing over a server could result in a hang. Large directories could also cause memory resource problems, resulting in a denial of service.Perhaps you have legacy code that uses java.io.File and would like to take advantage of the java.nio.file.Path functionality with minimal impact to your code.
The java.io.File class provides the 
toPath method, which converts an old style File instance to a java.nio.file.Path instance, as follows:
Path input = file.toPath();
You can then take advantage of the rich feature set available to the Path class.
For example, assume you had some code that deleted a file:
file.delete();
You could modify this code to use the Files.delete method, as follows:
Path fp = file.toPath(); Files.delete(fp);
Conversely, the 
Path.toFile method constructs a java.io.File object for a Path object.
Because the Java implementation of file I/O has been completely re-architected in the Java SE 7 release, you cannot swap one method for another method. If you want to use the rich functionality offered by the java.nio.file package, your easiest solution is to use the 
File.toPath method as suggested in the previous section. However, if you do not want to use that approach or it is not sufficient for your needs, you must rewrite your file I/O code.
There is no one-to-one correspondence between the two APIs, but the following table gives you a general idea of what functionality in the java.io.File API maps to in the java.nio.file API and tells you where you can obtain more information.
| java.io.File Functionality | java.nio.file Functionality | Tutorial Coverage | 
|---|---|---|
| java.io.File | java.nio.file.Path | The Path Class | 
| java.io.RandomAccessFile | The SeekableByteChannelfunctionality. | Random Access Files | 
| File.canRead,canWrite,canExecute | Files.isReadable,Files.isWritable, andFiles.isExecutable.On UNIX file systems, the Managing Metadata (File and File Store Attributes) package is used to check the nine file permissions. | Checking a File or Directory Managing Metadata | 
| File.isDirectory(),File.isFile(), andFile.length() | Files.isDirectory(Path, LinkOption...),Files.isRegularFile(Path, LinkOption...), andFiles.size(Path) | Managing Metadata | 
| File.lastModified()andFile.setLastModified(long) | Files.getLastModifiedTime(Path, LinkOption...)andFiles.setLastMOdifiedTime(Path, FileTime) | Managing Metadata | 
| The Filemethods that set various attributes:setExecutable,setReadable,setReadOnly,setWritable | These methods are replaced by the FilesmethodsetAttribute(Path, String, Object, LinkOption...). | Managing Metadata | 
| new File(parent, "newfile") | parent.resolve("newfile") | Path Operations | 
| File.renameTo | Files.move | Moving a File or Directory | 
| File.delete | Files.delete | Deleting a File or Directory | 
| File.createNewFile | Files.createFile | Creating Files | 
| File.deleteOnExit | Replaced by the DELETE_ON_CLOSEoption specified in thecreateFilemethod. | Creating Files | 
| File.createTempFile | Files.createTempFile(Path, String, FileAttributes<?>),Files.createTempFile(Path, String, String, FileAttributes<?>) | Creating Files Creating and Writing a File by Using Stream I/O Reading and Writing Files by Using Channel I/O | 
| File.exists | Files.existsandFiles.notExists | Verifying the Existence of a File or Directory | 
| File.compareToandequals | Path.compareToandequals | Comparing Two Paths | 
| File.getAbsolutePathandgetAbsoluteFile | Path.toAbsolutePath | Converting a Path | 
| File.getCanonicalPathandgetCanonicalFile | Path.toRealPathornormalize | Converting a Path ( toRealPath)Removing Redundancies From a Path ( normalize) | 
| File.toURI | Path.toURI | Converting a Path | 
| File.isHidden | Files.isHidden | Retrieving Information About the Path | 
| File.listandlistFiles | Path.newDirectoryStream | Listing a Directory's Contents | 
| File.mkdirandmkdirs | Path.createDirectory | Creating a Directory | 
| File.listRoots | FileSystem.getRootDirectories | Listing a File System's Root Directories | 
| File.getTotalSpace,File.getFreeSpace,File.getUsableSpace | FileStore.getTotalSpace,FileStore.getUnallocatedSpace,FileStore.getUsableSpace,FileStore.getTotalSpace | File Store Attributes |