Diferencia entre java.nio.file.Path y java.io.File

Hola a todos quisiera que por favor me explicaran la diferencia entre java.nio.file.Path y java.io.File no solo en que son de versiones diferentes de java sino en cuanto a rendimiento ventajas de usar uno o el otro y en que caso es mejor usar cada uno muchas gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Java 7

Es una abtracción nueva en Java 7. Un Path representa una ruta a un recurso (típicamente un archivo), de manera independiente al sistema operativo.

En Java 6 tenías únicamente dos opciones: usar File (que se volvía dependiente del sistema que usaras, en cierta medida) o URL (muy impráctico para recursos locales). Path tiene algunas monerías adicionales, como por ejemplo ser observable, de modo que puedes crear un Path para un archivo que no existe y registrar un observador para que reciba una notificación en cuanto el archivo sea creado (o a un archivo existente para ser notificado cuando es modificado o eliminado), y también canales NIO para lectura y escritura más sofisticada que con streams o readers/writers de java.nio (mapeo directo a memoria, leer y escribir en una posición absoluta, bloquear acceso a una región de un archivo, transferir regiones de un archivo a otros canales o de otros canales al archivo, etc).

Muchas gracias

Gracias por tu respuesta

Imagen de Alberto zenon

File en memoria

Hola buen dia disculpen se puede generar un File pero que el archivo no c guarde en el systema de Archivo sino que lo tenga en memoria para usarlo inmediatamente.

Imagen de ezamudio

no

Un File como tal no, pero puedes usar por ejemplo ByteArrayOutputStream para que cualquier objeto que necesite un OutputStream pueda escribir sólo en memoria, o StringWriter para que cualquier objeto que necesite un Writer que hace la función equivalente; la diferencia es que el primero guarda bytes mientras el segundo guarda caracteres y al final le puedes pedir una cadena.