尝试从亚马逊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字符串?
我认为你的回答是好,假设阿帕奇公共图书馆。 –