מחק את תוכן הקובץ ב- Java

1. הקדמה

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

2. שימוש PrintWriter

Java PrintWriter הכיתה מרחיבה את סוֹפֵר מעמד. הוא מדפיס את הייצוג המעוצב של אובייקטים לזרם פלט הטקסט.

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

מכונת הדפוס החדשה (FILE_PATH) .close (); assertEquals (0, StreamUtils.getStringFromInputStream (FileInputStream חדש (FILE_PATH)). אורך ());

כמו כן, שים לב שאם איננו זקוקים ל PrintWriter אובייקט לעיבוד נוסף, זו האפשרות הטובה ביותר. עם זאת, אם אנו זקוקים ל PrintWriter אובייקט לפעולות קבצים נוספות, נוכל לעשות זאת אחרת:

כותב PrintWriter = כתב הדפסה חדש (FILE_PATH); writer.print (""); // כותב פעולות אחר.סגור ();

3. שימוש FileWriter

Java FileWriter הוא מחלקה סטנדרטית של Java IO API המספקת שיטות לכתיבת נתונים מונחי תו לקובץ.

בואו נראה כעת כיצד נוכל לבצע את אותה הפעולה באמצעות FileWriter:

FileWriter חדש (FILE_PATH, false) .close ();

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

4. שימוש FileOutputStream

Java FileOutputStream הוא זרם פלט המשמש לכתיבת נתוני בתים לקובץ.

עכשיו, בואו נמחק את תוכן הקובץ באמצעות FileOutputStream:

FileOutputStream חדש (FILE_PATH) .close (); 

5. שימוש ב- Apache Commons IO FileUtils

Apache Commons IO היא ספרייה המכילה שיעורי עזר בכדי לסייע בבעיות נפוצות של IO. אנו יכולים למחוק את תוכן הקובץ באמצעות אחד ממחלקות השירות שלו - FileUtils.

כדי לראות איך זה עובד, בואו נוסיף את התלות של IO של Apache Commons pom.xml:

 commons-io commons-io 2.5 

לאחר מכן, ניקח דוגמה מהירה המדגימה מחיקה של תוכן הקובץ:

FileUtils.write (קובץ חדש (FILE_PATH), "", Charset.defaultCharset ());

6. שימוש ב- Java NIO קבצים

קובץ Java NIO הוצג ב- JDK 7. הוא מגדיר ממשקים ומחלקות לגישה לקבצים, תכונות קבצים ומערכות קבצים.

אנו יכולים גם למחוק את תוכן הקובץ באמצעות java.nio.file.Files:

כותב BufferedWriter = Files.newBufferedWriter (Paths.get (FILE_PATH)); writer.write (""); writer.flush ();

7. שימוש ב- Java NIO FileChannel

Java NIO FileChannel הוא הטמעה של NIO לחיבור קובץ. זה גם משלים את חבילת Java IO הסטנדרטית.

אנו יכולים גם למחוק את תוכן הקובץ באמצעות java.nio.channels.FileChannel:

FileChannel.open (Paths.get (FILE_PATH), StandardOpenOption.WRITE). לחתוך (0) .close ();

8. שימוש בגויאבה

גויאבה היא ספרייה מבוססת קוד פתוח עם Java המספקת שיטות שימוש לביצוע פעולות קלט / פלט. בואו נראה כיצד להשתמש ב- API של גויאבה למחיקת תוכן הקובץ.

ראשית, עלינו להוסיף את התלות בגויאבה שלנו pom.xml:

 com.google.guava גויאבה 22.0 

לאחר מכן, בואו נראה דוגמה מהירה למחיקת תוכן הקובץ באמצעות גויאבה:

קובץ קובץ = קובץ חדש (FILE_PATH); בתים [] ריק = בתים חדשים [0]; com.google.common.io.Files.write (ריק, קובץ);

9. מסקנה

לסיכום, ראינו מספר דרכים למחוק את תוכן הקובץ מבלי למחוק את הקובץ עצמו.

ניתן למצוא את היישום המלא של מדריך זה ב- GitHub.