Может кто-нибудь объяснить мне, почему 2-е утверждение 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();
}
}
}
EDIT
Эта проблема существует, только когда я запускаю программу в Eclipse. Когда я запускаю его из командной строки, можно распечатать строку в кодировке Base64.