我们有日志文件,即包含Base64编码的图像。我想处理这些日志文件并提取base64编码的“东西”,解码并将其存储为“真实”的图像文件。
我一直在寻找如何做到这一点似乎没有办法从hadoop生成图像文件,除了使用Sequence * OutputFormat类。
我的问题很简单,是否可以从hadoop的base64编码文件生成jpg文件,而无需编写自定义的OutputFormat?
亲切的问候/约翰
答案 0 :(得分:0)
不确定你对“自定义OutputFormat”的意思,但这是我在我的网络应用程序中所做的事情(尽管不是以任何方式与hadoop相关)。 HTH。
import sun.misc.BASE64Decoder;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
public static void storeImage(String imageBase64, String path) {
imageBase64 = imageBase64.replace("\n", "");
try {
new BASE64Decoder().decodeBufferToByteBuffer(imageBase64);
OutputStream out = new FileOutputStream(path);
PrintStream p = new PrintStream(out);
p.write(new BASE64Decoder().decodeBuffer(imageBase64));
p.flush();
p.close();
} catch (Exception e) {
log.error("Error storing image.", e);
e.printStackTrace();
}
}