Java - מחק קובץ

מאמר מהיר זה ממחיש כיצד למחוק קובץ ב- Java - תחילה באמצעות JDK 6, אחר כך JDK 7 ולבסוף ספריית ה- IO של Apache Commons.

מאמר זה הוא חלק מסדרת "Java - Back to Basic" כאן בבלדונג.

1. עם Java - JDK 6

נתחיל בפתרון Java 6 הסטנדרטי:

@Test הציבור בטל givenUsingJDK6_whenDeletingAFile_thenCorrect () זורק IOException {קובץ חדש ("src / test / resources / fileToDelete_jdk6.txt"). CreateNewFile (); File fileToDelete = קובץ חדש ("src / test / resources / fileToDelete_jdk6.txt"); הצלחה בוליאנית = fileToDelete.delete (); assertTrue (הצלחה); }

כפי שאתה יכול לראות - הקובץ חייב להתקיים לפני פעולת המחיקה; אם לא, ממשק ה- API לא ישליך חריגים אלא יחזיר שקר.

2. עם Java - JDK 7

נעבור לפתרון JDK 7:

@Test הציבור בטל שניתןUJingJDK7nio2_whenDeletingAFile_thenCorrect () זורק IOException {Files.createFile (Paths.get ("src / test / resources / fileToDelete_jdk7.txt")); נתיב fileToDeletePath = Paths.get ("src / test / resources / fileToDelete_jdk7.txt"); Files.delete (fileToDeletePath); }

עכשיו - זה ישתמש טוב יותר בחריגים. אם הקובץ אינו קיים כאשר פעולת המחיקה מופעלת - NoSuchFileException יושלך על ידי ה- API:

java.nio.file.NoSuchFileException: srctestresourcesfileToDelete_jdk7.txt ב- s.n.f.WindowsException.translateToIOException (WindowsException.java:79)

3. עם IO של Commons

Commons IO מאפשר לנו לשלוט בהתנהגות החריגים בעת מחיקת קובץ. למחיקה שקטה שבולעת חריגים אפשריים:

@Test הציבור בטל givenUsingCommonsIo_whenDeletingAFileV1_thenCorrect () זורק IOException {FileUtils.touch (קובץ חדש ("src / test / resources / fileToDelete_commonsIo.txt")); File fileToDelete = FileUtils.getFile ("src / test / resources / fileToDelete_commonsIo.txt"); הצלחה בוליאנית = FileUtils.deleteQuietly (fileToDelete); assertTrue (הצלחה); }

שים לב שאנחנו עדיין יכולים לקבוע אם הפעולה הצליחה או לא פשוט על ידי בדיקת ערך ההחזרה של שיטת המחיקה.

עכשיו - אם אנחנו רוצים שייזרק חריג:

@Test הציבור בטל givenUsingCommonsIo_whenDeletingAFileV2_thenCorrect () זורק IOException {FileUtils.touch (קובץ חדש ("src / test / resources / fileToDelete.txt")); FileUtils.forceDelete (FileUtils.getFile ("src / test / resources / fileToDelete.txt")); }

אם הקובץ למחיקה לא קיים במערכת הקבצים, ה- API יזרוק תקן FileNotFoundException:

java.io.FileNotFoundException: הקובץ לא קיים: srctestresourcesfileToDelete.txt ב- org.apache.commons.io.FileUtils.forceDelete (FileUtils.java:2275)

והנה לך - 4 דרכים פשוטות למחוק קובץ ב- Java.


$config[zx-auto] not found$config[zx-overlay] not found