Para nuevas aplicaciones escritas en Java 7, ¿hay alguna razón para usar un java.io.File
objeto más o podemos considerarlo obsoleto?
Creo que un java.nio.file.Path
puede hacer todo lo que java.io.File
puede hacer y más.
Para nuevas aplicaciones escritas en Java 7, ¿hay alguna razón para usar un java.io.File
objeto más o podemos considerarlo obsoleto?
Creo que un java.nio.file.Path
puede hacer todo lo que java.io.File
puede hacer y más.
Larga historia corta:
java.io.File
Lo más probable es que nunca sea desaprobado / no admitido. Dicho esto, java.nio.file.Path
es parte de la java.nio.file
lib más moderna y hace todojava.io.File
puede, pero en general de una mejor manera y más.
Para nuevos proyectos, use Path
.
Y si alguna vez necesita un File
objeto para el legado, simplemente llame a Path # toFile ()
Migrar de archivo a ruta
File
lugar dePath
?Path
puede modificarse más fácilmente para "agregar hijos" conresolve(...)
o "subir un nivel" congetParent()
, etc., mientrasFile
que no puede. Esencialmente, una vez que haya terminado de modificar la ruta, a menudo la convertirátoFile()
para que pueda enviarse a métodos heredados, como unFileInputStream
constructor.No, no puede considerarlo en desuso a menos que esté marcado en el
File
Javadoc.fuente
java.io.File
aún no se elimina ni se desaproba, y todavía no hay nada en el Javadoc que sugiera que alguna de estas cosas sucederá alguna vez.Mira este artículo sobre más información - http://www.oracle.com/technetwork/articles/javase/nio-139333.html
Básicamente, file.Path será el camino a seguir a partir de ahora, pero como es ampliamente conocido, las personas de Java tienden a mantener la compatibilidad con versiones anteriores, así que supongo que es por eso que lo han dejado.
fuente
Completaré la muy buena respuesta de
@mmcrae
.Las clases de JDK rara vez son obsoletas.
Puede ver en la lista JDK 8 API obsoletos todas las clases en desuso desde el primer JDK.
Contiene solo una pequeña parte de las clases que la documentación de Oracle y la comunidad Java desaconsejan usar.
java.util.Date
,java.util.Vector
,java.util.Hashtable
... que son clases con tantos defectos no están en desuso.Pero por qué ?
Porque conceptualmente
deprecated
todavía hay algo de medios pero desalienta su uso, ya que seguramente será eliminado.Miles de programas confían en estas clases mal diseñadas.
Para tales clases, los desarrolladores de API de Java no darán tal señal.
La respuesta de
@EJP
es realmente correcta:Por lo tanto, creo que su pregunta tendría más sentido en sus términos:
"A medida que tengamos la opción, deberíamos usarla
java.io.File
ojava.nio.file.Path
para nuevos desarrollos y, si la respuesta esjava.nio.file.Path
, ¿podría aprovechar fácilmentejava.io.File
los proyectos heredados que utilizanjava.io.File
?"Tienes la respuesta
Este tutorial de Oracle sobre IO heredado confirma su pensamiento.
Con tantos inconvenientes
java.io.File
, realmente no necesitamos ninguna razón para usar esta clase para nuevos desarrollos.E incluso para el uso de código heredado
java.io.File
, Oracle da pistas para usarPath
.fuente
Sí, pero muchas API existentes, incluidas las API estándar propias de Java7, todavía funcionan solo con el
File
tipo.fuente
Java.io.File no está en desuso. Sí, java.nio.file.Path es mejor, pero mientras existan muchos programas y libros de texto que utilicen Java.io.File, aunque solo sea por motivos heredados, no debe considerarse obsoleto, es demasiado importante. Hacerlo sería simplemente lanzar una llave inglesa en las obras sin ganancia total. Por ejemplo, el marco de Android usa File para algunas de sus funciones básicas de manejo de archivos, y muchas otras cosas lo hacen.
fuente
Path
era mejor. Preguntó siFile
estaba en desuso.Esto es un poco como decir: "si Napoleón invadiera Rusia, o estas coles de Bruselas son realmente sabrosas?"
En cuanto a la segunda parte de la pregunta, puedes considerarla obsoleta. A partir de enero de 2018, no está en desuso. Pero no hay nada que te impida considerarlo así. Es imposible decir si eso le proporcionará alguna ventaja en esta vida o en la próxima.
fuente
File
. ¿Debo, sí o no?"File
todos modos. No va a morir en el corto plazo.it isn't deprecated. But there's nothing to stop you *considering* it so
Jajaja