So konvertieren Sie eine Datei in ein Byte-Array in Java

Eine Methode zum Speichern von PDF- und CSV-Dateien im BLOB-Typ von Oracle. Bis jetzt habe ich mich selten mit Byte-Arrays befasst, deshalb werde ich es aufschreiben, damit ich es in Zukunft nicht vergesse.

Betriebsumgebung

Die Methode, die ich gemacht habe

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

Geänderte Version der erstellten Methode

Basierend auf dem, was Sie mir in den Kommentaren gesagt haben, werde ich einige modifizierte Methoden schreiben.

Methode ①

Eine Version, die den Punkt behebt, dass die Endlosschleife währenddessen nicht cool ist und vergisst, ByteArrayoutputStream zu schließen. Die später beschriebene Methode ist einfacher. Wenn Sie also Java 7 oder höher verwenden, sollten Sie die Methode ② oder höher verwenden.

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

Methode ②

Verwendung von apache.commons.compress.utils.IOUtils.toByteArray. Jede Umgebung, in der Sie eine Bibliothek hinzufügen können, ist in Ordnung.

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

Methode ③

Verwendung von java.nio.file.Files.readAllBytes (). Beachten Sie, dass es nur mit Java 7 oder höher verwendet werden kann.

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

Methode ④

Verwendung von java.io.InputStream.transferTo (). Bitte beachten Sie, dass es nur mit Java 9 oder höher verwendet werden kann.

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

Verschiedene Gefühle

Recommended Posts

So konvertieren Sie eine Datei in ein Byte-Array in Java
Konvertieren Sie ein Java-Byte-Array in eine hexadezimale Zeichenfolge
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So erstellen Sie ein Java-Array
[Java] Ich möchte ein Byte-Array in eine Hexadezimalzahl konvertieren
So zeigen Sie eine Webseite in Java an
So konvertieren Sie einen Soliditätsvertrag in eine Java-Vertragsklasse
So konvertieren Sie Java Base
[Java] Konvertiert ArrayList in Array
[Java] [Für Anfänger] So fügen Sie Elemente direkt in ein zweidimensionales Array ein
So initialisieren Sie ein Java-Array
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So springen Sie von Eclipse Java zu einer SQL-Datei
[Java] So konvertieren Sie ein Element eines Array vom Typ String in einen Int-Typ
So erstellen Sie einen Java-Container
Wie man JAVA in 7 Tagen lernt
So konvertieren Sie erb-Datei in haml
Protokollausgabe in Datei in Java
Wie verwende ich Klassen in Java?
So benennen Sie Variablen in Java
[Java] Konvertieren Sie ein Array in ArrayList * Achtung
So verketten Sie Zeichenfolgen mit Java
So lesen Sie Ihre eigene YAML-Datei (*****. Yml) in Java
So ändern Sie eine Zeichenfolge in einem Array in eine Zahl in Ruby
Lesen Sie WAV-Daten als Byte-Array unter Android Java
Speichern von Zeichenfolgen von ArrayList zu Zeichenfolge in Java (Personal)
So fügen Sie dieselben Indizes in ein verschachteltes Array ein
So entwickeln und registrieren Sie eine Sota-App in Java
So simulieren Sie das Hochladen von Post-Object-Formularen in OSS in Java
Für Java-Anfänger: Liste, Karte, Iterator / Array ... Wie konvertiere ich?
Speichern von Dateien mit der angegebenen Erweiterung unter dem in Java angegebenen Verzeichnis in der Liste
So erstellen Sie eine Java-Kalenderzusammenfassung
Bei der Suche nach mehreren in einem Java-Array
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
[Java] Verwendung der File-Klasse
So erstellen Sie eine JAR-Datei ohne Abhängigkeiten in Maven
So fügen Sie ein Video in Rails ein
So fügen Sie einen neuen Hash / Array hinzu
So implementieren Sie einen Job, der die Java-API in JobScheduler verwendet
So fügen Sie eine JAR-Datei in ScalaIDE hinzu
So erstellen Sie ein neues Gradle + Java + Jar-Projekt in Intellij 2016.03
So führen Sie eine Basiskonvertierung in Java durch
[Einführung in Java] So schreiben Sie ein Java-Programm
So bedienen Sie automatisch einen in Java unter Windows erstellten Bildschirm
Wie erstelle ich einen Discord Bot (Java)
Konvertieren Sie SVG-Dateien in Java in PNG-Dateien
So erzwingen Sie Codierungskonventionen in Java
Einbetten von Janus Graph in Java
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
So erhalten Sie das Datum mit Java
So veröffentlichen Sie eine Bibliothek in jCenter
Beispiel zum Entpacken einer gz-Datei in Java