日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

如何在Java中将字节数组转换为InputStream和OutputStream

發(fā)布時(shí)間:2023/12/3 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在Java中将字节数组转换为InputStream和OutputStream 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

您是否堅(jiān)持使用編碼,因?yàn)槟凶止?jié)數(shù)組,并且鏈中的下一個(gè)方法需要InputStream? 不用擔(dān)心Java有解決方案,您可以使用
ByteArrayInputStream 在Java中將字節(jié)數(shù)組轉(zhuǎn)換為InputStream 。 此類使用字節(jié)數(shù)組作為源,并且由于它是InputStream的子類,因此您可以輕松地將其傳遞給任何接受InputStream作為參數(shù)的方法。 盡管大多數(shù)API(例如JDBC和File API)都允許您直接從InputStream讀取,因?yàn)檫@允許您使用有限的堆空間來處理任意內(nèi)容。 您應(yīng)該利用此優(yōu)勢(shì),直接從InputStream讀取而不是獲取字節(jié)數(shù)組,然后將它們轉(zhuǎn)換回InputStream。 僅適用于您擁有舊代碼而不再維護(hù)和更新的情況。 同樣,將字節(jié)數(shù)組轉(zhuǎn)換為OutputStream也很簡(jiǎn)單。 由于我們使用OutputStream編寫某些內(nèi)容,因此您可以直接在其中寫入字節(jié)數(shù)組。 假設(shè)您從TCP套接字收到了一些消息并希望保留在文件系統(tǒng)中,則可以使用OutputStream和FileOutputStream直接寫入字節(jié)數(shù)組。 前面我們已經(jīng)看到了如何將InputStream轉(zhuǎn)換為字節(jié)數(shù)組 ,在本文中,通過創(chuàng)建一個(gè)將字節(jié)數(shù)組轉(zhuǎn)換為InputStream的簡(jiǎn)單示例,我們將看到相反的結(jié)果。

這是我們的示例程序,該程序首先從String中獲取字節(jié)數(shù)組以進(jìn)行測(cè)試。 無論如何,在將String轉(zhuǎn)換為字節(jié)時(shí)總是提供字符編碼 ,反之亦然。 為了重新創(chuàng)建場(chǎng)景,我創(chuàng)建了一個(gè)靜態(tài)方法,該方法將InputStream轉(zhuǎn)換為String。 此方法稱為streamToString(),該方法采用InputStream和字符編碼來讀取文本。 我們重新創(chuàng)建相同的String,之前已將其轉(zhuǎn)換為字節(jié)數(shù)組。 本示例的下一部分顯示如何將字節(jié)數(shù)組寫入OutputStream 。 順便說一句,如果您不使用try-with-resource語(yǔ)句 ,那么不要忘記在完成Streams后立即關(guān)閉它。 可以說,接受InputStream的方法是否應(yīng)該關(guān)閉它,但出于安全考慮,我已經(jīng)關(guān)閉了它。 讓我知道您對(duì)此有何想法,因?yàn)锳pache Commons IO和Google Guava中都有IO實(shí)用程序類的示例,它們關(guān)閉流,但不關(guān)閉傳遞給它們的流。

import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; /*** Java Program to convert byte array to InputStream and OutputStream in Java.* Uses ByteArrayInputStream and ByteArrayOutputStream examples.* @author Javin Paul*/ public class ByteArrayToStream {public static void main(String args[]) {String str = "Google is GOD";byte[] bytes = str.getBytes(StandardCharsets.UTF_8);// Creating InputStream from byte array// ByteArrayInputStream is sub-class of InputStreamInputStream is = new ByteArrayInputStream(bytes);String stringFromBytes = streamToString(is, StandardCharsets.UTF_8);System.out.println("String recreated from bytes : " + str);// Writing byte array to OutputStreamOutputStream os = new ByteArrayOutputStream();try {os.write(bytes);os.close();} catch (IOException e) {e.printStackTrace();}}/** Read String from InputStream and closes it*/public static String streamToString(InputStream is, Charset encoding) {BufferedReader br = new BufferedReader(new InputStreamReader(is, encoding));StringBuilder sb = new StringBuilder(1024);try {String line = br.readLine();while (line != null) {sb.append(line);line = br.readLine();}} catch (IOException io) {System.out.println("Failed to read from Stream");io.printStackTrace();} finally {try {br.close();} catch (IOException ioex) {System.out.println("Failed to close Streams");ioex.printStackTrace();}}return sb.toString();} } Output: String recreated from bytes : Google is GOD

您可以看到我們的streamToString()方法如何將InputStream轉(zhuǎn)換為String ,但是在此之前,我們已經(jīng)使用ByteArrayInputStream 在Java中將字節(jié)數(shù)組轉(zhuǎn)換為InputStream了 。 正如我所說的,ByteArrayInputStream是InputStream的子類,您可以在需要InputStream時(shí)通過或使用它。 從java.io包中獲得的類層次結(jié)構(gòu)圖也很清楚,該圖顯示了JDK庫(kù)中InputStream的不同實(shí)現(xiàn)。

這就是如何在Java中將字節(jié)數(shù)組轉(zhuǎn)換為InputStream的全部?jī)?nèi)容。 由于對(duì)java.io軟件包的了解有限,一開始聽起來可能很困難,但是一旦您知道有一個(gè)名為ByteArrayInputStream的類,它就變得非常簡(jiǎn)單。 由于它是InputStream的子類,因此可以代替InputStream傳遞它。 如果要將字節(jié)轉(zhuǎn)換為字符并在完成后關(guān)閉流,請(qǐng)不要忘記提供字符編碼。

翻譯自: https://www.javacodegeeks.com/2014/04/how-to-convert-byte-array-to-inputstream-and-outputstream-in-java.html

總結(jié)

以上是生活随笔為你收集整理的如何在Java中将字节数组转换为InputStream和OutputStream的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产欧美一区二区三区在线老狼 | 三级黄色小视频 | 999精品在线视频 | 国产美女免费观看 | 免费观看高清在线 | 亚洲在线成人 | 午夜视频日韩 | 夜夜艹天天干 | 久久精品免费在线 | 特级大胆西西4444人体 | 日本高清在线一区 | 999精彩视频 | 黄色1级大片 | 九九精品热| 91伦理| 久久视频一区二区三区 | 欧美三级a做爰在线观看 | 色婷婷av久久久久久久 | 亚洲国产精品18久久久久久 | 小色瓷导航 | 欧美视频自拍偷拍 | 亚洲另类xxxx | 成年人在线播放视频 | 一区二区三区四区日韩 | 在线亚洲精品 | 一级片在线免费观看 | 大尺度床戏揉捏胸视频 | 男人天堂你懂的 | 亚洲精品久久久久久一区二区 | 久久成人亚洲 | 美女黄视频在线观看 | 超碰国产91| 熟妇高潮一区二区三区在线播放 | 精品国产丝袜一区二区三区乱码 | 国产a级片视频 | 欧美黑人精品一区二区不卡 | 亚洲图片欧美色图 | 亚洲成人久久久 | 一级黄色a级片 | 色婷婷综合久久久久中文一区二区 | 九九九九九伊人 | 免费看黄网站在线观看 | 老头糟蹋新婚少妇系列小说 | 久久久精品毛片 | 国产在视频线精品视频 | 日本精品在线观看视频 | 少妇精品久久久久www | 亚洲精品www | 国产精品免费看久久久无码 | 日韩全黄 | 国产美女一区 | 每日更新av | 护士的小嫩嫩好紧好爽 | 深夜小视频在线观看 | 国产一二三四在线 | 人禽l交视频在线播放 视频 | 欧美性潮喷xxxxx免费视频看 | 日韩电影一区 | 人成在线视频 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 久久免费激情视频 | 少妇29p| 日韩精品一区二区三区av | 久天堂 | 亚洲国产精彩中文乱码av | 欧美呦呦 | 国产精品www. | 熟妇高潮精品一区二区三区 | 一级成人黄色片 | 欧美在线一区视频 | 国产91丝袜在线播放0 | 国产亚洲一区二区三区四区 | 亚洲第一色网 | 日本无遮挡边做边爱边摸 | 成人二三区 | 宅男噜噜噜66一区二区 | 性欧美在线观看 | 美女被变态侵犯 | 亚洲自拍偷拍网站 | 中文字幕在线播放一区二区 | 总裁憋尿呻吟双腿大开憋尿 | 成人黄色动漫在线观看 | 综合精品久久久 | 国产精品成av人在线视午夜片 | 亚洲美女网站 | 香港三级日本三级韩国三级 | 丰满人妻翻云覆雨呻吟视频 | 亚洲精品国产美女 | 亚洲天天影视 | 免费观看日本 | 精品久久香蕉国产线看观看亚洲 | 国产精品一线 | 99爱精品 | 天天爱天天射 | 爱草在线 | 久久久久久久久久久久久久久久久久久久 | 视频一区二区视频 | 成人在线免费高清视频 | 伊人网成人网 |