Java-输出不打印
我正在尝试使用BuffereImage类将图像文件转换为Base64字符串。即使代码没有给出任何编译/运行时错误,也不会在控制台中打印输出 Eclipse IDE代码:Java-输出不打印,java,file-io,bufferedimage,javax.imageio,bytearrayoutputstream,Java,File Io,Bufferedimage,Javax.imageio,Bytearrayoutputstream,我正在尝试使用BuffereImage类将图像文件转换为Base64字符串。即使代码没有给出任何编译/运行时错误,也不会在控制台中打印输出 Eclipse IDE代码: public class BufferImage { public static void main(String args[]) { try { BufferedImage img = null; img = ImageIO.read(new File("image.jpg")); // eventuall
public class BufferImage {
public static void main(String args[]) {
try
{
BufferedImage img = null;
img = ImageIO.read(new File("image.jpg")); // eventually C:\\ImageTest\\pic2.jpg
String image_string = encodeToString(img, "string");
System.out.println(image_string);
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static String encodeToString(BufferedImage image, String type)
{
String base64String = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
ImageIO.write(image, type, bos);
byte[] imageBytes = bos.toByteArray();
BASE64Encoder encoder = new BASE64Encoder();
base64String = encoder.encode(imageBytes);
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
return base64String;
}
}
如何克服这个问题?问题在于
ImageIO.write(图像、类型、bos)代码>。在您的案例中,类型是“String”
,但这很可能不是有效的格式。要查看您可以使用的所有格式,请执行ImageIO.getReaderFormatNames()
如果您可以使用Apache Commons,我建议您尝试将文件编码为Base64:(fileImage
的类型为file
):
问题在于ImageIO.write(图像、类型、bos)代码>。在您的案例中,类型是“String”
,但这很可能不是有效的格式。要查看您可以使用的所有格式,请执行ImageIO.getReaderFormatNames()
如果您可以使用Apache Commons,我建议您尝试将文件编码为Base64:(fileImage
的类型为file
):
我真想知道为什么您认为“string”
是一个有效的格式名。使用“jpg”
代替(“bmp”、“png”或任何你的图片)。我真想知道为什么你认为“string”
是一个有效的格式名称。使用“jpg”
代替(“bmp”、“png”或任何图片)。
byte[] imageBytes = Base64.encode(FileUtils.readFileToByteArray(fileImage));
String base64String = new String(imageBytes);