无法打印Base64编码的字符串

时间:2019-01-15 08:29:20

标签: java eclipse base64

有人可以向我解释为什么下面的第二个println语句不打印任何内容吗?即使我使用encodeToString()方法而不是encode()方法,我仍然无法打印Base64编码的字符串。编码的字符串不是空的,我可以使用它的length()方法进行验证。我尝试了一个不同的文件,一个二进制文件,问题仍然存在。

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Base64;

public class Test {

    public static void main(String... args) {
        try {
            byte[] content = Files.readAllBytes(Paths.get("D:\\config.properties"));
            System.out.println(content.length); // correctly prints the length
            byte[] encoded = Base64.getEncoder().encode(content);
            System.out.println(new String(encoded)); // prints nothing
            content = Base64.getDecoder().decode(encoded);
            System.out.println(new String(content)); // prints original content
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

}

编辑

此问题仅在我在Eclipse中运行程序时存在。当我从命令提示符运行它时,可以打印出Base64编码的字符串。

0 个答案:

没有答案