Une note sur la façon de générer un ** URI de données ** à partir d'un fichier en Java
** URI de données ** est une version encodée en base64 des données multimédias, etc., et se présente comme suit.
data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28y ...==
En HTML,
<image src="data:image/png;base64,AAAAIGZ0eXBpc29tAAAC ・ ・ ・">
<video src="data:video/mp4;base64,AAAAIGZ0eXBpc29tAAAC ・ ・ ・">
Il est possible de spécifier src comme.
Examinez le type MIME du fichier.
File file = new File("movie.mp4");
String contentType = Files.probeContentType(file.toPath());
byte[] data = Files.readAllBytes(file.toPath());
 String base64str = DatatypeConverter.printBase64Binary(data);
 String base64str = Base64.getEncoder().encodeToString(data);
Formatez comme suit
data:[<MIME-type>][;charset=<encoding>][;base64],<data>
StringBuilder sb = new StringBuilder();
sb.append("data:");
sb.append(contentType);
sb.append(";base64,");
sb.append(base64str);
ToDataURI.java
package org.example;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import javax.xml.bind.DatatypeConverter;
public class ToDataURI {
	public static void main(String[] args) throws IOException {
		//Fichier source
		File file = new File("movie.mp4");
		//Examiner le type de contenu d'un fichier
		String contentType = Files.probeContentType(file.toPath());
		//Octet de contenu de fichier[]Charger dans
		byte[] data = Files.readAllBytes(file.toPath());
		// byte[]Vers une chaîne base64(java7)
		String base64str = DatatypeConverter.printBase64Binary(data);
		// byte[]Vers une chaîne base64(java8)
		// String base64str = Base64.getEncoder().encodeToString(data);
		//Créer un URI de données
		StringBuilder sb = new StringBuilder();
		sb.append("data:");
		sb.append(contentType);
		sb.append(";base64,");
		sb.append(base64str);
		//Voir les résultats
		System.out.println(sb.toString());
	}
}
data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wN ・ ・ ・ Omis ci-dessous