Java - המרת קובץ ל- InputStream
1. סקירה כללית
במדריך מהיר זה אנו הולכים להראות כיצד להמיר א קוֹבֶץ ל InputStream- תחילה באמצעות Java רגיל ואז גויאבה וספריית ה- IO של Apache Commons.
מאמר זה הוא חלק מה- "ג'אווה - חזרה לבסיסיסדרה כאן על באלדונג.
2. להמיר באמצעות ג'אווה
אנו יכולים להשתמש בחבילת ה- IO של java כדי להמיר a קוֹבֶץ לשונה InputStreamס.
2.1. FileInputStream
נתחיל עם הראשון ו הפשוטה ביותר - באמצעות א FileInputStream:
@Test הציבור בטל givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect () זורק IOException {File initialFile = קובץ חדש ("src / main / resources / sample.txt"); InputStream targetStream = FileInputStream חדש (initialFile); }
2.2. DataInputStream
בואו נראה אחד אחר, איפה שאנחנו יכולים להשתמש DataInputStream לקריאת נתונים בינאריים או פרימיטיביים מקובץ:
@Test הסופי הציבורי בטל givenUsingPlainJava_whenConvertingFileToDataInputStream_thenCorrect () זורק IOException {final File initialFile = קובץ חדש ("src / test / resources / sample.txt"); סופי InputStream targetStream = DataInputStream חדש (FileInputStream חדש (initialFile)); }
2.3. SequenceInputStream
לבסוף, בואו נסתכל גם כיצד להשתמש SequenceInputStream לשרשור זרם קלט של שני קבצים ליחיד InputStream:
@Test ציבורי חלל סופי givenUsingPlainJava_whenConvertingFileToSequenceInputStream_thenCorrect () זורק IOException {final File initialFile = קובץ חדש ("src / test / resources / sample.txt"); הקובץ הסופי anotherFile = קובץ חדש ("src / test / resources / anothersample.txt"); סופי InputStream targetStream = FileInputStream חדש (initialFile); סופי InputStream anotherTargetStream = FileInputStream חדש (anotherFile); InputStream sequenceTargetStream = SequenceInputStream חדש (targetStream, AnotherTargetStream); }
שים לב שאנחנו לא סוגרים את הזרם שנוצר בדוגמאות אלה לצורך קריאות.
3. להמיר באמצעות גויאבה
הבא - בואו נראה פיתרון הגויאבה, באמצעות מתווך ByteSource:
@Test הציבור בטל givenUsingGuava_whenConvertingFileToInputStream_thenCorrect () זורק IOException {File initialFile = קובץ חדש ("src / main / resources / sample.txt"); InputStream targetStream = Files.asByteSource (initialFile) .openStream (); }
4. המירו באמצעות IO של Commons
לסיום - בואו נסתכל על פיתרון באמצעות Apache Commons IO:
@Test הציבור בטל givenUsingCommonsIO_whenConvertingFileToInputStream_thenCorrect () זורק IOException {File initialFile = קובץ חדש ("src / main / resources / sample.txt"); InputStream targetStream = FileUtils.openInputStream (initialFile); }
ויש לך את זה - 3 פתרונות פשוטים ונקיים לפתיחת זרם מקובץ Java.
5. מסקנה
במאמר זה בחנו דרכים שונות כיצד להמיר a קוֹבֶץ ל InputStream באמצעות ספריות שונות.
ניתן למצוא את היישום של כל הדוגמאות וקטעי הקוד ב- GitHub - זהו פרויקט מבוסס Maven, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.