Comment convertir un fichier en tableau d'octets en Java

Une méthode créée pour stocker des fichiers PDF et des fichiers CSV dans le type BLOB d'Oracle. Jusqu'à présent, j'ai rarement traité des tableaux d'octets, je vais donc l'écrire pour ne pas l'oublier à l'avenir.

Environnement d'exploitation

La méthode que j'ai faite

    public byte[] convertFile(File file) {
        try (FileInputStream inputStream = new FileInputStream(file);) {
            ByteArrayOutputStream bout = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            while(true) {
                int len = inputStream.read(buffer);
                if(len < 0) {
                    break;
                }
                bout.write(buffer, 0, len);
            }
            return bout.toByteArray();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Version modifiée de la méthode créée

J'écrirai quelques méthodes modifiées basées sur ce que vous m'avez dit dans les commentaires.

Méthode ①

Une version qui corrige le fait que la boucle infinie par while n'est pas cool et oublie de fermer ByteArrayoutputStream. La méthode décrite plus loin est plus simple, donc si vous utilisez Java 7 ou supérieur, vous devez utiliser la méthode ② ou une version ultérieure.

    public byte[] convertFile(File file) {
        File file = new File(dir + name);
        try (FileInputStream inputStream = new FileInputStream(file);
            ByteArrayOutputStream bout = new ByteArrayOutputStream();) {
           byte[] buffer = new byte[1024];
           int len = 0;
           while((len = inputStream.read(buffer)) != -1) {
               bout.write(buffer, 0, len);
           }
           return bout.toByteArray();
       } catch (Exception e) {
           e.printStackTrace();
       }
        return null;
    }

Méthode ②

Comment utiliser apache.commons.compress.utils.IOUtils.toByteArray. Tout environnement dans lequel vous pouvez ajouter une bibliothèque est OK.

    public byte[] convertFile(File file) throws IOException {
        FileInputStream inputStream = new FileInputStream(file);
        return IOUtils.toByteArray(inputStream);
    }

Méthode ③

Comment utiliser java.nio.file.Files.readAllBytes (). Notez qu'il ne peut être utilisé qu'avec Java 7 ou supérieur.

public byte[] convertFile(File file) throws IOException {
    return Files.readAllBytes(file.toPath());
}

Méthode ④

Comment utiliser java.io.InputStream.transferTo (). Veuillez noter qu'il ne peut être utilisé qu'avec Java 9 ou supérieur.

    public byte[] convertFile(File file) throws IOException {
        FileInputStream inputStream = new FileInputStream(file);
        return inputStream.transferTo(outputStream);
    }

Sentiments divers

Recommended Posts

Comment convertir un fichier en tableau d'octets en Java
Convertir un tableau d'octets Java en une chaîne hexadécimale
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment créer un tableau Java
[Java] Je souhaite convertir un tableau d'octets en un nombre hexadécimal
Comment afficher une page Web en Java
Comment convertir un contrat de solidité en une classe de contrat Java
Comment convertir la base Java
[Java] Convertir ArrayList en tableau
[Java] [Pour les débutants] Comment insérer des éléments directement dans un tableau à deux dimensions
Comment initialiser un tableau Java
Comment créer un environnement Java en seulement 3 secondes
Comment passer d'Eclipse Java à un fichier SQL
[Java] Comment convertir un élément d'un tableau de type String en type Int
Comment créer un conteneur Java
Comment apprendre JAVA en 7 jours
Comment convertir un fichier erb en haml
Enregistrer la sortie dans un fichier en Java
Comment utiliser les classes en Java?
Comment nommer des variables en Java
[Java] Convertit un tableau en ArrayList * Attention
Comment concaténer des chaînes avec Java
Comment lire votre propre fichier YAML (*****. Yml) en Java
Comment changer une chaîne dans un tableau en un nombre dans Ruby
Lire les données WAV sous forme de tableau d'octets sur Android Java
Comment stocker des chaînes de ArrayList à String en Java (personnel)
Comment ajouter les mêmes index dans un tableau imbriqué
Comment développer et enregistrer une application Sota en Java
Comment simuler le téléchargement de formulaires post-objet vers OSS en Java
Pour les débutants Java: List, Map, Iterator / Array ... Comment convertir?
Comment enregistrer des fichiers avec l'extension spécifiée sous le répertoire spécifié en Java dans la liste
Comment créer un résumé de calendrier Java
Lors de la recherche de plusieurs dans un tableau 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
[Java] Comment utiliser la classe File
Comment créer un fichier jar sans dépendances dans Maven
Comment insérer une vidéo dans Rails
Comment ajouter un nouveau hachage / tableau
Comment implémenter un travail qui utilise l'API Java dans JobScheduler
Comment ajouter un fichier jar dans ScalaIDE
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
Comment faire une conversion de base en Java
[Introduction à Java] Comment écrire un programme Java
Comment faire fonctionner automatiquement un écran créé en Java sous Windows
Comment créer un robot Discord (Java)
Convertir des fichiers SVG en fichiers PNG en Java
Comment appliquer les conventions de codage en Java
Comment intégrer Janus Graph dans Java
Convertir un tableau de chaînes en une liste d'entiers en Java
Comment obtenir la date avec Java
Comment publier une bibliothèque dans jCenter
Exemple pour décompresser le fichier gz en Java