Java - צור קובץ

1. סקירה כללית

במדריך מהיר זה, אנו נלמד כיצד ליצור קובץ חדש ב- Java - תחילה באמצעות ה- קבצים ו נָתִיב שיעורים מ- NIO ואז Java קוֹבֶץ ו FileOutputStream שיעורים, גוגל גויאבה, ולבסוף ספריית ה- IO של אפאצ'י קומונס.

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

2. התקנה

בדוגמאות נגדיר קבוע לשם הקובץ:

סופי פרטי מחרוזת FILE_NAME = "src / test / resources / fileToCreate.txt";

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

@AfterEach @BeforeEach ציבור ריק ריק cleanUpFiles () {File targetFile = קובץ חדש (FILE_NAME); targetFile.delete (); }

3. שימוש ב- NIO Files.createFile ()

נתחיל ב משתמש ב Files.createFile () שיטה מחבילת Java NIO:

@Test הציבור בטל givenUsingNio_whenCreatingFile_thenCorrect () זורק IOException {Path newFilePath = Paths.get (FILE_NAME); Files.createFile (newFilePath); }

כפי שאתה יכול לראות הקוד עדיין פשוט מאוד; אנו משתמשים כעת בחדש נָתִיב ממשק במקום הישן קוֹבֶץ.

דבר אחד שיש לציין כאן הוא כי ה- API החדש עושה שימוש טוב בחריגים. אם הקובץ כבר קיים, אנחנו כבר לא צריכים לבדוק קוד החזרה. במקום זאת, נקבל FileAlreadyExistsException:

java.nio.file.FileAlreadyExistsException: src / test / resources / fileToCreate.txt ב- sun.n.f.WindowsException.translateToIOException (WindowsException.java:81)

4. באמצעות File.createNewFile ()

בואו נסתכל כעת כיצד אנו יכולים לעשות את אותו הדבר משתמש ב java.io. קובץ מעמד:

@Test ציבורי בטל givenUsingFile_whenCreatingFile_thenCorrect () זורק IOException {File newFile = קובץ חדש (FILE_NAME); הצלחה בוליאנית = newFile.createNewFile (); assertTrue (הצלחה); }

שים לב שהקובץ לא יכול להתקיים כדי שפעולה זו תצליח. אם הקובץ אכן קיים, אז createNewFile () הפעולה תחזיר שקר.

5. שימוש FileOutputStream

דרך נוספת ליצור קובץ חדש היא להשתמש ב java.io.FileOutputStream:

@Test הציבור בטל שניתןUsingFileOutputStream_whenCreatingFile_thenCorrect () זורק IOException {נסה (FileOutputStream fileOutputStream = FileOutputStream חדש (FILE_NAME)) {}}

במקרה זה, קובץ חדש נוצר כאשר אנו מיישרים את ה- FileOutputStream לְהִתְנַגֵד. אם קובץ עם שם נתון כבר קיים, הוא יוחלף. אם עם זאת, הקובץ הקיים הוא ספריה או שלא ניתן ליצור קובץ חדש מכל סיבה שהיא, נקבל FileNotFoundException.

בנוסף, שים לב שהשתמשנו ב- נסה עם משאבים הצהרה - כדי להיות בטוחים שזרם סגור כהלכה.

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

הפתרון של גויאבה ליצירת קובץ חדש הוא גם קו חד מהיר:

@Test הציבור בטל שניתןUsingGuava_whenCreatingFile_thenCorrect () זורק IOException {com.google.common.io.Files.touch (קובץ חדש (FILE_NAME)); }

7. שימוש ב- Apache Commons IO

ספריית Apache Commons מספקת את FileUtils.touch () שיטה שמיישמת את אותה התנהגות כמו "לגעתכלי השירות בלינוקס.

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

@ מבט ציבורי בטל givenUsingCommonsIo_whenCreatingFile_thenCorrect () זורק IOException {FileUtils.touch (קובץ חדש (FILE_NAME)); }

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

ויש לנו את זה - 4 דרכים מהירות ליצור קובץ חדש בג'אווה.

8. מסקנה

במאמר זה בדקנו פתרונות שונים ליצירת קובץ ב- Java. השתמשנו בשיעורים שהם חלק מה- JDK וספריות חיצוניות.

הקוד לדוגמאות זמין באתר GitHub.