如何正确打开png文件

时间:2018-06-23 23:34:35

标签: java

我正在尝试附加png文件。目前,当我发送电子邮件时,附件比文件应有的大小大2倍,并且是无效的png文件。这是我当前拥有的代码:

    import com.sendgrid.*;

    Attachments attachments = new Attachments();
    String filePath = "/Users/david/Desktop/screenshot5.png";
    String data = "";
    try {
        data = new String(Files.readAllBytes(Paths.get(filePath)));
    } catch (IOException e) {
    }

    byte[] encoded = Base64.encodeBase64(data.getBytes());
    String encodedString = new String(encoded);
    attachments.setContent(encodedString);

也许我对数据编码不正确? “获取”数据进行附加的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

因此,这就是Python向现代开发人员提出问题的原因。它抽象出了您无法用解释语言完全理解的重要概念。

首先,这是一个相对基本的概念,但是您can't convert arbitrary byte sequences to a string and hope it works out。以下是您的第一个问题:

data = new String(Files.readAllBytes(Paths.get(filePath)));

编辑:看起来您正在使用的库期望是要进行base64编码的文件。我不知道为什么。尝试将代码更改为此:

Attachments attachments = new Attachments();
String filePath = "/Users/david/Desktop/screenshot5.png";
try {
    byte[] encoded = Base64.encodeBase64(Files.readAllBytes(Paths.get(filePath)));
    String encodedString = new String(encoded);
    attachments.setContent(encodedString);
} catch (IOException e) {
}

唯一的问题是您试图将任意字节表示为字符串。

答案 1 :(得分:1)

看看存储库here中的Builder类。示例:

expect(object.constructor.name).toBe('Test');