当前位置: 首页 > 后端技术 > Java

【译文】Image转Base64字符串

时间:2023-04-01 23:48:19 Java

1Overview在这个简短的教程中,我们将介绍如何使用ApacheCommonIO包和Java8原生类Base64将图片文件转成base64字符串,然后将base64字符串进行转换然后把它变成一幅画。此操作也可以应用于任何二进制文件或二进制数组。当我们需要以json格式传输二进制内容时,它非常有用,例如从移动应用程序到REST。2Maven依赖在pom.xml中添加一个依赖:commons-iocommons-io2.11.0你的可以在Maven中央存储库中找到最新版本的commons-io包。MavenCentral.3Convertimagetobase64string首先,我们将文件内容转换成字节数组,然后使用Java8的Base64类对这个数组进行编码。byte[]fileContent=FileUtils.readFileToByteArray(newFile(filePath));StringencodedString=Base64.getEncoder().encodeToString(fileContent);encodeToString字段是A-Za-z0-9+/集合中的字符串,decoder这个集合之外的任何字符都会被拒绝。4将base64字符串转换为图像现在我们有了一个Base64字符串,让我们将它编码回二进制并写入文件。byte[]decodedBytes=Base64.getDecoder().decode(encodedString);FileUtils.writeByteArrayToFile(newFile(outputFileName),decodedBytes);5测试我们的代码最后,我们可以读取一个文件并将其编码为Base64字符串,然后解码返回到一个新文件以验证代码是否正常工作:publicclassFileToBase64StringConversionUnitTest{privateStringinputFilePath="test_image.jpg";privateStringoutputFilePath="test_image_copy.jpg";@TestpublicvoidfileToBase64StringConversion()throwsIOException{//从/src/test/resources加载文件ClassLoaderclassLoader=getClass().getClassLoader();文件inputFile=newFile(classLoader.getResource(inputFilePath).getFile());byte[]fileContent=FileUtils.readFileToByteArray(inputFile);字符串encodedString=Base64.getEncoder().encodeToString(fileContent);//创建输出文件FileoutputFile=newFile(inputFile.getParentFile().getAbsolutePath()+File.pathSeparator+outputFilePath);//解码字符串并写入文件byte[]decodedBytes=Base64.getDecoder().decode(encodedString);FileUtils.writeByteArrayToFile(outputFile,decodedBytes);assertTrue(FileUtils.contentEquals(inputFile,outputFile));}}6结论这篇文章非常切题,涵盖了使用ApacheCommonIO和Java8Features将任意文件的内容编码成Base64字符串,以及将Base64字符串解码成字节数组保存到文件中原文地址:https://www.baeldung.com/java...