1. 개요
이 빠른 사용방법(예제)에서는 이미지 파일을 Base64 String 으로 인코딩 한 다음이를 디코딩하여 Apache Common IO 및 Java 8 기본 Base64 기능을 사용하여 원본 이미지를 검색하는 방법을 다룰 것 입니다.
이 작업은 모든 이진 파일 또는 이진 배열에 적용될 수 있습니다. 모바일 앱에서 REST 엔드 포인트로 이진 콘텐츠를 JSON 형식으로 전송해야 할 때 유용합니다.
Base64 변환에 대한 자세한 내용은 여기에서이 문서를 확인 하십시오 .
2. Maven 의존성
pom.xml 파일에 다음 의존성을 추가해 보겠습니다 .
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
Maven Central 에서 최신 버전의 Apache Commons IO를 찾을 수 있습니다 .
3. 이미지 파일을 Base64 문자열로 변환
먼저 파일 내용을 바이트 배열로 읽고 Java 8 Base64 클래스를 사용하여 인코딩 해 보겠습니다 .
byte[] fileContent = FileUtils.readFileToByteArray(new File(filePath));
String encodedString = Base64.getEncoder().encodeToString(fileContent);
encodedString는 A는 문자열 의 문자 세트 A-ZA-Z0-9 + / 및 디코더는이 세트 밖에 어떤 문자를 거부한다.
4. Base64 문자열 을 이미지 파일로 변환
이제 Base64 String을 얻었 습니다. 이진 콘텐츠로 다시 디코딩하고 새 파일에 씁니다.
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
FileUtils.writeByteArrayToFile(new File(outputFileName), decodedBytes);
5. 코드 테스트
마지막으로 파일을 읽고 Base64 String으로 인코딩 한 다음 새 파일로 다시 디코딩 하여 코드가 올바르게 작동하는지 확인할 수 있습니다 .
public class FileToBase64StringConversionUnitTest {
private String inputFilePath = "test_image.jpg";
private String outputFilePath = "test_image_copy.jpg";
@Test
public void fileToBase64StringConversion() throws IOException {
// load file from /src/test/resources
ClassLoader classLoader = getClass().getClassLoader();
File inputFile = new File(classLoader
.getResource(inputFilePath)
.getFile());
byte[] fileContent = FileUtils.readFileToByteArray(inputFile);
String encodedString = Base64
.getEncoder()
.encodeToString(fileContent);
// create output file
File outputFile = new File(inputFile
.getParentFile()
.getAbsolutePath() + File.pathSeparator + outputFilePath);
// decode the string and write to file
byte[] decodedBytes = Base64
.getDecoder()
.decode(encodedString);
FileUtils.writeByteArrayToFile(outputFile, decodedBytes);
assertTrue(FileUtils.contentEquals(inputFile, outputFile));
}
}
6. 결론
이 간결한 기사에서는 파일의 콘텐츠를 Base64 String 으로 인코딩하고 Base64 String 을 바이트 배열로 디코딩하고 Apache Common IO 및 Java 8 기능을 사용하여 파일에 저장하는 기본 방법을 설명합니다.
항상 그렇듯이 코드 스 니펫은 GitHub 에서 찾을 수 있습니다 .
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/java-base64-image-string
'Java' 카테고리의 다른 글
Spring MVC 컨트롤러에서 일반 HTML 반환 (0) | 2021.03.25 |
---|---|
Java에서 파일 내용 삭제 (0) | 2021.03.25 |
Java에서 재귀 적으로 디렉토리 삭제 (0) | 2021.03.24 |
스프링 배치로 스프링 부트 (0) | 2021.03.24 |
자바에서 바이너리 트리 구현 (0) | 2021.03.24 |