在我的Java服務器我從iOS客戶端的InputStream,它看起來像這樣得到:如何將InputStream轉換爲字符串到Java中的字節數組?
--0xKhTmLbOuNdArY
Content-Disposition: form-data; filename="Image001"
Content-Type: image/png
âPNG
IHDR���@���@���™iqfi���gAMA��Ø»7äÈ���tEXtSoftware�Adobe ImageReadyq…e<��IDATx⁄‰;iê]Uôflπ˜Ω◊Ø;ΩB::õY
ê6LÄ「Õ¿
... etc. ...
≠Yy<‘_˜øüYmc˚æØ…ægflóÏK$å±çe0ˆΩleIë¢êH¢Tñê–Üd
≠≤§àä6D¸>˙÷˜˚<øÁ˘˝˜˚º^sÁ=Áû{ÓπÁ‹œπ˜úÄÎ:!44¡@
--0xKhTmLbOuNdArY--
第一和最後一行是我的HTTP邊界。第2行和第3行是關於圖像文件的信息。從第5行直到倒數第二行有我需要的圖像文件作爲字節數組。
那麼如何從InputStream獲取圖像信息作爲字符串和圖像文件作爲字節數組? 該解決方案應該快速高效(文件大小可以是幾兆字節/< 10MB)。
我的方法:
我InputStream的轉換爲字符串,然後把它分解和轉換的第二個字符串的字節數組...
String str = org.apache.commons.io.IOUtils.toString(inputStream);
String[] strArray1 = str.split("\r\n\r\n", 2);
byte[] bytes = strArray1[1].getBytes();
這種方式是非常快的,但字節數組似乎已經損壞。我無法從該字節數組創建圖像文件...某些字符被錯誤地轉換。
也許有人可以幫忙嗎?