Java-输出不打印

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

我正在尝试使用BuffereImage类将图像文件转换为Base64字符串。即使代码没有给出任何编译/运行时错误,也不会在控制台中打印输出

Eclipse IDE代码:

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);