גודל הקובץ ב- Java
1. סקירה כללית
במדריך מהיר זה נלמד כיצד להשיג את גודל הקובץ ב- Java - באמצעות Java 7, ה- Java 8 החדש ו- Apache Common IO.
לבסוף - נקבל גם ייצוג קריא אנושי של גודל הקובץ.
2. Java IO סטנדרטי
נתחיל בדוגמה פשוטה לחישוב גודל הקובץ - באמצעות ה- קובץ.אורך () שיטה:
פרטי ארוך getFileSize (קובץ קובץ) {long length = file.length (); אורך החזרה; }
אנו יכולים לבדוק את היישום שלנו בפשטות יחסית:
@Test ציבורי בטל whenGetFileSize_thenCorrect () {long expectSize = 12607; קובץ imageFile = קובץ חדש ("src / test / resources / image.jpg"); גודל ארוך = getFileSize (imageFile); assertEquals (expectSize, size); }
שים לב, כברירת מחדל, גודל הקבצים מחושב בתים.
3. עם Java NIO
לאחר מכן - בואו נראה כיצד להשתמש בספריית NIO כדי לקבל את גודל הקובץ.
בדוגמה הבאה נשתמש ב- FileChannel.size () API כדי לקבל את גודל הקובץ בתים:
@Test ציבורי בטל כאשר GetFileSizeUsingNioApi_thenCorrect () זורק IOException {long expectSize = 12607; נתיב imageFilePath = Paths.get ("src / test / resources / image.jpg"); FileChannel imageFileChannel = FileChannel.open (imageFilePath); imageFileSize ארוך = imageFileChannel.size (); assertEquals (expectSize, imageFileSize); }
4. עם Apache Commons IO
לאחר מכן - בואו נראה כיצד להשיג את גודל הקובץ באמצעות Apache Commons IO. בדוגמה הבאה - אנחנו פשוט משתמשים FileUtils.sizeOf () כדי לקבל את גודל הקובץ:
@ מבחן ציבורי בטל כאשר GetFileSizeUsingApacheCommonsIO_thenCorrect () {long expectSize = 12607; קובץ imageFile = קובץ חדש ("src / test / resources / image.jpg"); גודל ארוך = FileUtils.sizeOf (imageFile); assertEquals (expectSize, size); }
שים לב, עבור קבצים מוגבלים לאבטחה, FileUtils.sizeOf () ידווח על הגודל כאפס.
5. גודל קריא לאדם
לבסוף - בואו נראה כיצד להשיג ייצוג קריא יותר למשתמש של גודל הקובץ באמצעות Apache Commons IO - לא רק גודל בתים:
@ מבחן ציבורי בטל כאשר GetReadableFileSize_thenCorrect () {File imageFile = קובץ חדש ("src / test / resources / image.jpg"); גודל ארוך = getFileSize (imageFile); assertEquals ("12 KB", FileUtils.byteCountToDisplaySize (גודל)); }
6. מסקנה
במדריך זה, המחשנו דוגמאות לשימוש ב- Java ו- Apache Commons IO לחישוב גודל הקובץ במערכת הקבצים.
ניתן למצוא את היישום של דוגמאות אלה בפרויקט GitHub - זהו פרויקט מבוסס Maven, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.