java - 使用 Apache Commons 在 Groovy 中对图像文件进行 Base 64 编码

标签 java groovy encoding base64 apache-commons-codec

我正在尝试使用此 site 上的说明将图像文件编码为 Base64 字符串。唯一的区别是我有一个 groovy 脚本(而不是 Java),我的整个脚本只是......

  @Grapes(
    @Grab(group='commons-io', module='commons-io', version='2.6')
  )

 import org.apache.commons.io.FileUtils
 import org.apache.commons.codec.binary.Base64


  byte[] fileContent = FileUtils.readFileToByteArray(new File('/Users/me/Test.jpeg'));
  String encodedString = Base64.getEncoder().encodeToString(fileContent);

当我运行这个时,我得到以下异常,但不明白为什么......

 groovy.lang.MissingMethodException: 
 No signature of method: static org.apache.commons.codec.binary.Base64.getEncoder() is applicable for argument types: () values: []
 Possible solutions: encode([B), encode(java.lang.Object)

最佳答案

您正在导入org.apache.commons.codec.binary.Base64

使用Base64.getEncoder().encodeToString(fileContent),您正在调用java.util.Base64,它具有除org.apache 之外的方法。 commons.codec.binary.Base64.

由于 java.util.* 是 Groovy 的默认导入之一,因此当您删除 import org.apache.commons.codec.binary.Base64 时,您的代码应该可以工作。

关于java - 使用 Apache Commons 在 Groovy 中对图像文件进行 Base 64 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56078328/

相关文章:

.Net 8位编码

c# - 是否可以在不知道文件在 C# 中的编码的情况下通过小的更改立即读取和写入文件?

c# - IsSingleByte Encoding的GetByteCount为什么要进行计算

java - 将 Hibernate 与 Spring 一起使用时,我可以摆脱 persistence.xml 吗?

java - 我应该什么时候创建新 Activity ?

java - 如何保存和加载Android图像

maven - 无法在 build.gradle 的发布 block 中定义任何内容

java - 我应该将 git 存储库存储在 Home 还是 Eclipse Workspace 中?

groovy - 如何使用 jmeter 和 groovy 在 IF CONTROLLER 中添加条件

debugging - Intellij,Gradle:无法打开调试器端口(127.0.0.1:57850):java.net.SocketException “Socket closed”