嘗試從亞馬遜S3中提取圖像(返回S3ObjectInputStream
)並將其發送到mandrill email api(採用base64編碼的字符串)。這怎麼可以在Scala中完成?如何在Scala中將InputStream轉換爲base64字符串?
2
A
回答
6
下面是一個解決方案,其他人可能更有效。
val is = new ByteArrayInputStream(Array[Byte](1, 2, 3)) // replace by your InputStream
val stream = Stream.continually(is.read).takeWhile(_ != -1).map(_.toByte)
val bytes = stream.toArray
val b64 = new sun.misc.BASE64Encoder().encode(bytes)
你可以(也應該)也由Apache公地Base64了更好的兼容性更換sun.misc
編碼器。
val b64 = org.apache.commons.codec.binary.Base64.encodeBase64(bytes)
13
我也設法做到了,只是使用Apache公共;不知道哪種方法更好,但想我會離開這個答案備案:
import org.apache.commons.codec.binary.Base64
import org.apache.commons.io.IOUtils
val bytes = IOUtils.toByteArray(stream)
val bytes64 = Base64.encodeBase64(bytes)
val content = new String(bytes64)
0
這裏有一個simple encoder/decoder我寫的,你可以包括源。所以,沒有外部依賴。
的接口是有點多階式的:
import io.github.marklister.base64.Base64._ // Same as Lomig Mégard's answer val b64 = bytes.toBase64
相關問題
- 1. java將inputStream轉換爲base64字符串
- 2. 將UTF字符串轉換爲InputStream
- 3. 將InputStream轉換爲字符串(telnet)
- 4. 將inputStream從ZipFile轉換爲字符串
- 5. 如何在Android中將Base64 Blob字符串轉換爲圖像?
- 6. 如何在Java中將int數組轉換爲base64字符串?
- 7. 如何將base64字符串轉換爲doc/docx在C#中?
- 8. 將字符串轉換爲SHA1和base64
- 9. 將base64字符串轉換爲X509 certifcate
- 10. 將Base64字符串轉換爲UIImage
- 11. VB.NET - 將MP3轉換爲Base64字符串
- 12. 如何將InputStream轉換爲Java中的字符串?
- 13. 如何從InputStream獲取Base64字符串?
- 14. 如何在scala中將字符串數組轉換爲hashmap?
- 15. 如何將圖像轉換爲java中的base64字符串?
- 16. 如何將圖像轉換爲文件中的Base64字符串?
- 17. 如何將java.sql.blob轉換爲java中的base64編碼字符串
- 18. 如何將base64字符串圖像轉換爲android中的blob?
- 19. 如何將base64字符串轉換爲postgresql8.2中的bytea
- 20. 如何將Base64轉換爲Java中的字符串(用於pdf)
- 21. Scala將字符串轉換爲StringOps
- 22. 如何將Swift(IOS)字符串轉換爲webapi中的base64字符串?
- 23. 如何將base64字符串轉換爲C++中的十六進制字符串?
- 24. 將.net字符串對象轉換爲base64編碼字符串
- 25. 將BASE64字符串轉換爲BASE16(HEX)字符串?
- 26. BlackBerry InputStream轉換爲字符串
- 27. 如何將JSON字符串轉換爲Scala中的地圖
- 28. 如何將字符串轉換爲Scala中的不同編碼?
- 29. 如何將圖像轉換爲Base64字符串?
- 30. 如何將Icon轉換爲base64字符串?
我認爲你的回答是好,假設阿帕奇公共圖書館。 –