Java - InputStream to Reader

במדריך מהיר זה אנו נסתכל המרת InputStream אל א קוֹרֵא באמצעות Java, ואז Guava ולבסוף Apache Commons IO.

מאמר זה הוא חלק מה- "ג'אווה - חזרה לבסיסיסדרה כאן על באלדונג.

1. עם ג'אווה

ראשית, בואו נסתכל על פתרון Java הפשוט - באמצעות הזמין InputStreamReader:

@Test הציבור בטל givenUsingPlainJava_whenConvertingInputStreamIntoReader_thenCorrect () זורק IOException {InputStream initialStream = חדש ByteArrayInputStream ("עם Java" .getBytes ()); Reader targetReader = חדש InputStreamReader (initialStream); targetReader.close (); }

2. עם גויאבה

הבא - בואו נסתכל על פיתרון הגויאבה - באמצעות מערך בתים מתווך ומחרוזת:

@Test הציבור בטל שניתןUsingGuava_whenConvertingInputStreamIntoReader_thenCorrect () זורק IOException {InputStream initialStream = ByteSource.wrap ("With Guava" .getBytes ()). OpenStream (); בתא [] חיץ = ByteStreams.toByteArray (סטרימינג ראשוני); קורא targetReader = CharSource.wrap (מחרוזת חדשה (חיץ)). OpenStream (); targetReader.close (); }

שים לב שפתרון Java הוא פשוט יותר מגישה זו.

3. עם IO של Commons

לבסוף - הפיתרון באמצעות Apache Commons IO - גם באמצעות מחרוזת מתווך:

@ מבחן חלל ציבורי givenUsingCommonsIO_whenConvertingInputStreamIntoReader_thenCorrect () זורק IOException {InputStream initialStream = IOUtils.toInputStream ("עם IO של Commons"); byte [] buffer = IOUtils.toByteArray (initialStream); Reader targetReader = CharSequenceReader חדש (מחרוזת חדשה (חיץ)); targetReader.close (); }

ויש לך את זה - 3 דרכים מהירות להמיר את זרם הקלט ל- Java קוֹרֵא. הקפד לבדוק את הדגימה ב- GitHub.