Bagaimana saya bisa memeriksa apakah ada file, sebelum membukanya untuk dibaca di Jawa (setara dengan Perl
-e $filename
)?
Satu-satunya pertanyaan serupa pada penawaran SO dengan menulis file dan dengan demikian dijawab menggunakan FileWriter
yang jelas tidak berlaku di sini.
Jika memungkinkan, saya lebih suka panggilan API asli yang mengembalikan benar / salah sebagai lawan dari beberapa "Panggilan API untuk membuka file dan menangkap ketika itu melemparkan pengecualian yang Anda periksa untuk 'tidak ada file' dalam teks", tapi saya bisa hidup dengan yang terakhir.
java
file-io
io
file-exists
DVK
sumber
sumber
canRead
,canWrite
dancanExecute
untuk memeriksa bahwa .Jawaban:
Menggunakan
java.io.File
:sumber
if(f.isFile())
sebagai gantinya.Saya akan merekomendasikan menggunakan
isFile()
bukanexists()
. Sebagian besar waktu Anda mencari untuk memeriksa apakah jalur menunjuk ke file tidak hanya itu ada. Ingat ituexists()
akan mengembalikan true jika jalur Anda menunjuk ke direktori.new File("C:/").exists()
akan mengembalikan true tetapi tidak akan memungkinkan Anda untuk membuka dan membacanya sebagai file.sumber
/path
,new File("file.txt").exists()
akan kembalitrue
jika path lengkap yang benar adalah/path/to/file.txt
, jawabannya adalah tidak besar (kecuali file lain/path/file.txt
ada).Dengan menggunakan nio di Java SE 7,
Jika keduanya
exists
dannotExists
kembali salah, keberadaan file tidak dapat diverifikasi. (mungkin tidak ada akses langsung ke jalur ini)Anda dapat memeriksa apakah
path
direktori atau file biasa.Silakan periksa tutorial Java SE 7 ini .
sumber
java.nio.file.Files.exists()
adalah banyak lebih cepat daripadajava.io.File.exists()
(dari patokan kecil saya di komputer hanya saya diuji: Windows Server 2012 berjalan Java 1.7.0_45 x64).java.nio.file.Files.exists()
5 kali lebih lambat daripadajava.io.File.exists
. (Win7 Java 1.7.0_79 - x86)Menggunakan Java 8:
sumber
Files.exists()
Dibutuhkan dua argumen. Biasanya, Anda akan menginginkan sesuatu sepertiFiles.exists(path, LinkOption.NOFOLLOW_LINKS )
.Ini tidak akan membuat file fisik. Hanya akan membuat objek File kelas. Untuk secara fisik membuat file, Anda harus membuatnya secara eksplisit:
Jadi
f.exists()
dapat digunakan untuk memeriksa apakah file tersebut ada atau tidak.sumber
sumber
-e
juga memastikan bahwa aplikasi "dapat membaca" file?Ada beberapa cara untuk mencapai ini.
Dalam hal hanya untuk keberadaan. Itu bisa berupa file atau direktori.
Periksa file
Periksa Direktori.
Java 7 cara.
sumber
Anda dapat menggunakan yang berikut ini:
File.exists()
sumber
klik pertama untuk "file java ada" di google:
sumber
String.valueOf()
, yang menangani nullsJangan. Tangkap saja
FileNotFoundException.
Sistem file harus menguji apakah file itu ada. Tidak ada gunanya melakukan semua itu dua kali, dan beberapa alasan untuk tidak melakukannya, seperti:Jangan coba tebak sistemnya. Itu tahu. Dan jangan mencoba memprediksi masa depan. Secara umum cara terbaik untuk menguji apakah setiap sumber daya yang tersedia hanya untuk mencoba untuk menggunakannya.
sumber
Bagi saya kombinasi jawaban yang diterima oleh Sean AO Harney dan komentar yang dihasilkan oleh Cort3z tampaknya menjadi solusi terbaik.
Gunakan cuplikan berikut:
Semoga ini bisa membantu seseorang.
sumber
Saya tahu saya agak terlambat di utas ini. Namun, inilah jawaban saya, valid sejak Java 7 ke atas.
Cuplikan berikut
sangat memuaskan, karena metode
isRegularFile
kembalifalse
jika file tidak ada. Karena itu, tidak perlu memeriksa apakahFiles.exists(...)
.Perhatikan bahwa parameter lain adalah opsi yang menunjukkan bagaimana tautan harus ditangani. Secara default, tautan simbolik diikuti.
Dari dokumentasi Java Oracle
sumber
Files.notExists
,Files.isDirectory
danFiles.isRegularFile.
Alternatif terbaik untuk ini adalah:path.toFile().exists()
Layak juga untuk mengenal Commons FileUtils https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html Ini memiliki metode tambahan untuk mengelola file dan seringkali lebih baik daripada JDK.
sumber
Misalnya jika Anda memiliki direktori file dan Anda ingin memeriksa apakah ada
exists
akan mengembalikan false jika file tidak adasumber: https://alvinalexander.com/java/java-file-exists-directory-exists
sumber
Contoh sederhana dengan praktik pengkodean yang baik dan mencakup semua kasus:
Referensi dan lebih banyak contoh di
https://zgrepcode.com/examples/java/java/nio/file/filealreadyexistsexception-implementations
sumber
Jika Anda ingin memeriksa
File
dalam direktoridir
dan periksa
check
hasilnyasumber
akan melakukan trik
sumber
Jangan gunakan File constructor dengan String.
Ini mungkin tidak berfungsi!
Alih-alih ini gunakan URI:
sumber
File.exists()
untuk memeriksa apakah ada file, itu akan mengembalikan nilai boolean untuk menunjukkan status operasi pemeriksaan; true jika file tersebut ada; salah jika tidak ada.sumber
Anda dapat menggunakan kode berikut untuk memeriksa:
sumber
Anda bisa melakukannya dengan cara ini
sumber
File.is Exist()
atauFiles.isRegularFile()
di JDK 8Ada tujuan khusus untuk merancang metode ini. Kami tidak bisa mengatakan menggunakan siapa pun untuk memeriksa file ada atau tidak.
sumber
Untuk memeriksa apakah ada file, cukup impor perpustakaan java.io. *
Sumber: http://newsdivariotipo.altervista.org/java-come-controllare-se-un-file-esiste/
sumber