כיצד להשיג את סיומת הקובץ של קובץ ב- Java

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

במדריך מהיר זה נראה כיצד להשיג את סיומת הקובץ באופן תכנותי בג'אווה. אנו נתמקד בשלוש גישות עיקריות לבעיה.

ביישומים שלנו, הדמויות אחרי הגמר '.' יוחזר.

לכן, כדוגמה מהירה, אם שם הקובץ שלנו הוא jarvis.txt ואז זה יחזיר את חוּטטקסט" כהרחבה של הקובץ.

2. קבלת סיומת הקובץ

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

  • כאשר אין שם סיומות סיומות, כגון a makefile קוֹבֶץ
  • ואם שם קובץ מורכב מהסיומת בלבד, כגון .gitignore אוֹ .DS_Store.

2.1. פָּשׁוּט חוּט גישת הטיפול

בגישה זו נשתמש בפשטות חוּט גישה לטיפול במציאת הרחבה:

public getExtensionByStringHandling אופציונלי (שם קובץ מחרוזת) {return Optional.ofNullable (שם קובץ) .filter (f -> f.contains (".")). מפה (f -> f.substring (filename.lastIndexOf (".") + 1 )); } 

שיטה זו תבדוק אם נקודה '.' התרחשות בשם הקובץ הנתון.

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

מקרים מיוחדים:

  1. אין סיומת - שיטה זו תחזיר ריק חוּט
  2. רק סיומת - שיטה זו תחזיר את חוּט אחרי הנקודה, למשל "Gitignore"

2.2. FilenameUtils.getExtension מ- Apache Commons IO

בגישה השנייה, אנו נמצא את התוסף באמצעות מחלקת שירות המסופקת על ידי ספריית Apache Commons IO:

מחרוזת ציבורית getExtensionByApacheCommonLib (שם קובץ מחרוזת) {להחזיר FilenameUtils.getExtension (שם קובץ); }

כאן, במקום שם הקובץ, אנו יכולים גם לציין את הנתיב המלא לקובץ לְמָשָׁלC: /baeldung/com/demo.java“.

השיטה getExtension (מחרוזת) יבדוק אם הנתון שם קובץ ריק או לא.

אם שם קובץ הוא ריק או ריק, getExtension (שם קובץ מחרוזת) יחזיר את המופע שניתן. אחרת, הוא מחזיר את התוסף של שם הקובץ.

לשם כך הוא משתמש בשיטה indexOfExtension (מחרוזת) אשר, בתורו, משתמש lastIndexof (char) כדי למצוא את ההתרחשות האחרונה של '.'. שתי השיטות מסופקות על ידי FilenameUtils.

שיטה זו גם בודקת שאין מפריד ספריות לאחר הנקודה האחרונה באמצעות שיטה אחרת indexOfLastSeparator (מחרוזת), אשר יטפל בקובץ בפורמט יוניקס או חלונות.

מקרים מיוחדים:

  1. אין סיומת - שיטה זו תחזיר מחרוזת ריקה.
  2. רק סיומת - שיטה זו תחזיר את חוּט אחרי הנקודה, למשל "Gitignore"

2.3. באמצעות ספריית גויאבה

בגישה אחרונה זו נשתמש בספריית גויאבה כדי למצוא את התוסף.

כדי להוסיף ספריית גויאבה, אנו יכולים להוסיף את התלות הבאה שלנו pom.xml:

 com.google.guava גויאבה 24.1.1-jre 

לקבלת תלות אחרונה, אנו יכולים לבדוק את Maven Central.

לאחר הוספת הספרייה נוכל פשוט להשתמש בה getFileExtension שיטה:

מחרוזת ציבורית getExtensionByGuava (שם קובץ מחרוזת) {להחזיר Files.getFileExtension (שם קובץ); } 

השיטה getFileExtension (מחרוזת) תחילה יבדוק האם הנתון שם קובץ זה ריק.

אם ה שם קובץ אינו ריק ואז הוא ייצור קוֹבֶץ למשל על ידי המרת הנתון שם קובץ לתוך שם נתיב וקריאה מופשטים קבציםgetName () שיטה מעליו, שתחזיר את שם הקובץ המסומן בשם נתיב מופשט זה, או את המחרוזת הריקה אם נתון שם קובץ זה ריק.

בהתבסס על ערך החזר זה הוא מביא את אינדקס ההתרחשות האחרונה של '.' על ידי שימוש ב חוּט שיטה מובנית בכיתה lastIndexOf (char).

מקרים מיוחדים:

  1. ללא הרחבה - שיטה זו תחזיר ריק חוּט
  2. הרחבה בלבד - שיטה זו תחזיר את ה- חוּט אחרי הנקודה, למשל "Gitignore"

3. מסקנה

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

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

כמו כן, בדוק את כל הדוגמאות במאמר זה ב- Github.


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