זרם קלט קבצי Java באובונטו 20.04

Zrm Qlt Qbzy Java B Wbwntw 20 04



'במאמר זה, נדון בדרכים שונות לקריאת נתונים מקבצים לתוך מערך בתים על ידי שימוש במחלקה Java Input Stream. מחלקה זו מייצגת זרם ממוין של בתים מקובץ. ישנן מספר פונקציות במחלקה Java Input Stream שנמצאות בשימוש נפוץ ויידונו במאמר זה, כמו השיטות read(), available(), skip() ו-close(). שיטות אלו משמשות לקריאת קבצים עם הרחבות שונות כמו קובצי bin או txt וניתן לשנות אותם כדי לקבל מידע מכל נקודה בקובץ. אנו ניישם את השיטות הללו בסביבת אובונטו 20.04 במאמר זה.

ישנן שיטות רבות נוספות של מחלקה File Input Stream אשר גם מועילות מאוד בקבלת נתונים מקובץ; חלקם הם int read(byte[] b), פונקציה זו קוראת נתונים מזרם הקלט עד באורך b.length בתים. ערוץ הקבצים מקבל את הערוץ(): האובייקט הספציפי של ערוץ הקבצים המחובר לזרם קלט הקובץ מוחזר באמצעותו. Finalize() משמש כדי להבטיח שהפונקציה close() מופעלת כאשר אין עוד התייחסות לזרם הקלט של הקובץ.'

דוגמה 01: קריאת בייט בודד מקובץ טקסט באמצעות שיטות read() ו-close() של מחלקת זרם הקלט

דוגמה זו משתמשת ב- File Input Stream כדי לקרוא תו בודד ולהדפיס את התוכן. נניח שיש לנו קובץ בשם 'file.txt' עם התוכן המוצג להלן:









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







ראשית עלינו לייבא את java.io. חבילת File Input Stream על מנת לבנות זרם קלט קבצים. לאחר מכן ניצור אובייקט חדש של File Input Stream שיקושר לקובץ שצוין (file.txt) במשתנה 'f'.

בדוגמה זו, נשתמש בשיטת 'int read()' של מחלקת Java File Input Stream, המשמשת לקריאת בייט בודד מהקובץ ולשמור אותו במשתנה 'I'. לאחר מכן, ה-'System.out.print(char(i))' מציג את התו המתאים לאותו בייט.



שיטת f.close() סוגרת את הקובץ והזרם. נקבל את הפלט הבא לאחר בנייה והרצה של הסקריפט האמור, מכיוון שאנו יכולים לראות רק האות הראשונית של הטקסט 'L' מודפסת.

דוגמה 02: קריאת כל התוכן של קובץ טקסט באמצעות שיטות read() ו-close() של מחלקת זרם הקלט

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

שוב, אנו נייבא java.io. חבילת File Input Stream על מנת לבנות זרם קלט קבצים.

ראשית, נקרא את הביט הראשון של הקובץ ונציג את התו המתאים בתוך לולאת ה-while. לולאת ה-while תפעל עד שלא יישארו בתים, כלומר סוף הטקסט בקובץ. שורה 12 תקרא את הביט הבא, והלולאה תמשיך עד הבית האחרון של הקובץ.

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

דוגמה 03: קביעת מספר הבתים הזמינים בקובץ טקסט על ידי שימוש בשיטת זרם הקלט הזמינה() של Class Stream

בדוגמה זו, נשתמש בפונקציית 'available()' של ה- File Input Stream כדי לקבוע את מספר הבתים הקיימים בזרם קלט הקבצים.

ראשית, יצרנו אובייקט של מחלקת זרם קלט קבצים בשם 'a' עם הקוד הבא. בשורה 5, השתמשנו בשיטת 'available()' כדי לקבוע ולהציג את הכמות הכוללת של בתים זמינים בקובץ. לאחר מכן, משורה 6 לשורה 8, השתמשנו בפונקציה 'read()' שלוש פעמים. כעת בשורה 9, השתמשנו שוב בשיטת 'available()' כדי לבדוק ולהציג את הבתים הנותרים.

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

דוגמה 04: דילוג על בייטים של קובץ טקסט כדי לקרוא נתונים מנקודה ספציפית באמצעות שיטת skip() של מחלקה זרם קלט

בדוגמה זו, אנו נשתמש בשיטת 'דילוג(x)' של File Input Stream, המשמשת כדי להתעלם ולהתעלם ממספר הבתים הנתון של נתונים מזרם הקלט.

בקוד שלהלן, ראשית, יצרנו זרם קלט קובץ ואחסנו אותו במשתנה 'a'. לאחר מכן, השתמשנו בשיטת 'a.skip(5)', שתדלג על 5 הבתים הראשונים של הקובץ. לאחר מכן, הדפסנו את שאר התווים של הקובץ בשיטת 'read()' בתוך לולאת while. לבסוף, סגרנו את זרם קלט הקבצים בשיטת 'close()'.

להלן צילום המסך של הטרמינל לאחר הידור והרצה של הקוד. כפי שאנו יכולים לראות, רק 'Ipsum' מוצג מכיוון שדילגנו על 5 הבתים הראשונים בשיטת 'skip()'.

סיכום

במאמר זה, דנו בשימושים במחלקה File Input Stream ובשיטות השונות שלה; read(), זמין(), skip() וסגור(). השתמשנו בשיטות אלה כדי לקרוא את האלמנט הראשון של קובץ באמצעות המתודות read() ו-close(). לאחר מכן אנו קוראים את כל הקובץ באמצעות הגישה האיטרטיבית ובשימוש באותן שיטות. לאחר מכן השתמשנו בשיטת available() כדי לקבוע את מספר הבתים הקיימים בתחילת הקובץ וסיומו. לאחר מכן, השתמשנו בשיטת skip() כדי לדלג על מספר בתים לפני קריאת הקובץ, מה שאפשר לנו לקבל את הנתונים הספציפיים שהיינו צריכים.