Comment créer un URI de données (base64) en Java

Une note sur la façon de générer un ** URI de données ** à partir d'un fichier en Java

Qu'est-ce que l'URI de données

** 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.

1. Vérifiez le type MIME qui représente le type de fichier

Examinez le type MIME du fichier.

File file = new File("movie.mp4");

String contentType = Files.probeContentType(file.toPath());

2. Lisez tout le contenu du fichier dans le tableau d'octets []

byte[] data = Files.readAllBytes(file.toPath());

3. Encodez le tableau d'octets [] en base64

 String base64str = DatatypeConverter.printBase64Binary(data);
 String base64str = Base64.getEncoder().encodeToString(data);

4.Faire le format URI des données

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

Code source complet

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

	}
}

Une fois exécuté, l'URI de données est terminé

data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wN ・ ・ ・ Omis ci-dessous

Recommended Posts

Comment créer un URI de données (base64) en Java
Comment créer un environnement Java en seulement 3 secondes
Comment faire une conversion de base en Java
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
Comment afficher une page Web en Java
Comment créer un thème dans Liferay 7 / DXP
Comment créer facilement un pull-down avec des rails
Comment créer une méthode
Comment effacer toutes les données d'une table particulière
J'ai essayé de créer une compétence Clova en Java
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment convertir un fichier en tableau d'octets en Java
Comment créer un conteneur Java
Comment apprendre JAVA en 7 jours
Comment utiliser les classes en Java?
Comment nommer des variables en Java
Comment créer un tableau Java
Comment concaténer des chaînes avec Java
Comment utiliser les données JSON dans la communication WebSocket (Java, JavaScript)
Comment créer une image de conteneur légère pour les applications Java
Comment créer une partie d'espace réservé à utiliser dans la clause IN
Comment stocker des chaînes de ArrayList à String en Java (personnel)
Créer une méthode pour renvoyer le taux de taxe en Java
Comment développer et enregistrer une application Sota en Java
Comment simuler le téléchargement de formulaires post-objet vers OSS en Java
Comment créer un portlet de générateur de services dans Liferay 7 / DXP
Comment créer un résumé de calendrier Java
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Créer des données binaires de longueur variable en Java
Comment insérer une vidéo dans Rails
Comment implémenter un travail qui utilise l'API Java dans JobScheduler
[Introduction à Java] Comment écrire un programme Java
Comment créer un référentiel Maven pour 2020
Comment faire fonctionner automatiquement un écran créé en Java sous Windows
Comment créer un robot Discord (Java)
Créer une application TODO dans Java 7 Créer un en-tête
Comment appliquer les conventions de codage en Java
Comment intégrer Janus Graph dans Java
Comment obtenir la date avec Java
[Swift5] Comment créer un écran de démarrage
[rails] Comment créer un modèle partiel
Comment publier une bibliothèque dans jCenter
Comment écraser les données Firebase avec Swift
Comment tester une méthode privée et la simuler partiellement en Java
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
[Mémo personnel] Comment interagir avec le générateur de nombres aléatoires en Java
Pour créer un fichier Zip lors du regroupement des résultats de recherche de base de données en Java
Comment passer un proxy lors du lancement de REST avec SSL en Java
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
[Java] [Pour les débutants] Comment insérer des éléments directement dans un tableau à deux dimensions
Comment créer votre propre annotation en Java et obtenir la valeur
Comment créer une base de données H2 n'importe où
Deux façons de démarrer un thread en Java + @
Créer un CSR avec des informations étendues en Java