Untuk aplikasi baru yang ditulis dalam Java 7, apakah ada alasan untuk menggunakan java.io.File
objek lagi atau dapatkah kita menganggapnya usang?
Saya percaya java.nio.file.Path
dapat melakukan segala yang java.io.File
bisa dilakukan dan banyak lagi.
File
bukanPath
?Path
dapat lebih mudah dimodifikasi untuk "menambah anak" denganresolve(...)
atau "naik satu tingkat" dengangetParent()
, dll. sedangkanFile
tidak bisa. Intinya begitu Anda selesai memodifikasi Path, Anda akan sering mengonversinyatoFile()
sehingga dapat dikirim ke metode lama sepertiFileInputStream
konstruktor.Tidak, Anda tidak dapat menganggapnya usang kecuali dan sampai ditandai di
File
Javadoc.sumber
java.io.File
masih belum dihapus atau bahkan sudah usang, dan masih ada apa pun di Javadoc yang menyarankan bahwa salah satu dari hal-hal ini akan pernah terjadi.Lihat artikel ini tentang info lebih lanjut - http://www.oracle.com/technetwork/articles/javase/nio-139333.html
Pada dasarnya file.Path akan menjadi cara untuk pergi dari sekarang, tetapi seperti yang diketahui orang Jawa cenderung untuk tetap kembali kompatibilitas jadi saya kira itu sebabnya mereka meninggalkannya.
sumber
Saya akan menyelesaikan jawaban yang sangat bagus
@mmcrae
.Kelas JDK sangat jarang ditinggalkan.
Anda dapat melihat pada API JDK 8 yang sudah usang daftar semua kelas yang sudah tidak digunakan sejak JDK pertama.
Ini hanya berisi sedikit bagian dari kelas yang tidak dapat digunakan oleh dokumentasi Oracle dan komunitas Java.
java.util.Date
,java.util.Vector
,java.util.Hashtable
... yang kelas dengan begitu banyak cacat tidak usang.Tapi kenapa ?
Karena secara konseptual sesuatu yang
deprecated
berarti masih ada tetapi mencegah untuk digunakan karena hal itu pasti akan dihapus.Ribuan program bergantung pada kelas yang dirancang buruk ini.
Untuk kelas seperti itu, pengembang Java API tidak akan memberikan sinyal seperti itu.
Jawabannya
@EJP
sangat benar:Jadi, saya pikir pertanyaan Anda akan lebih masuk akal dalam istilah-istilahnya:
"Karena kita punya pilihan, haruskah kita menggunakan
java.io.File
ataujava.nio.file.Path
untuk perkembangan baru dan jika jawabannya adalahjava.nio.file.Path
, bisakah Anda dengan mudah mengambil keuntungan darijava.io.File
proyek legacy yang digunakanjava.io.File
?"Anda punya jawabannya.
Tutorial oracle ini tentang warisan IO menegaskan pemikiran Anda.
Dengan begitu banyak kekurangannya
java.io.File
, kita benar-benar tidak perlu menggunakan kelas ini untuk perkembangan baru.Dan bahkan untuk menggunakan kode lama
java.io.File
, Oracle memberikan petunjuk untuk digunakanPath
.sumber
Ya, tetapi banyak API yang ada, termasuk API standar Java7 sendiri, masih berfungsi hanya dengan
File
tipe.sumber
Java.io.File tidak ditinggalkan. Ya java.nio.file.Path lebih baik, tetapi selama masih ada banyak program dan buku teks menggunakan Java.io.File, jika hanya untuk alasan warisan, itu tidak boleh dianggap usang, itu terlalu penting. Melakukan hal itu hanya akan melemparkan kunci pas dalam karya tanpa untung semua. Misalnya kerangka kerja Android menggunakan File untuk beberapa fitur penanganan file dasarnya, banyak hal lain yang perlu dilakukan.
sumber
Path
lebih baik. Dia bertanya apakahFile
sudah usang.Ini agak seperti mengatakan: "haruskah Napoleon menyerbu Rusia, atau apakah kubis Brussel ini benar-benar enak?"
Adapun bagian kedua dari pertanyaan, Anda memang bisa menganggapnya sudah usang. Pada Januari 2018, itu tidak ditinggalkan. Tapi tidak ada yang menghentikan Anda mempertimbangkannya begitu. Apakah itu akan memberi Anda keuntungan apa pun dalam kehidupan ini atau yang berikutnya tidak mungkin untuk dikatakan.
sumber
File
. Haruskah saya, ya atau tidak?"File
. Itu tidak akan mati dalam waktu dekat.it isn't deprecated. But there's nothing to stop you *considering* it so
LOL.