Byte in eine Datei schreiben in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden von FileOutputStream zum Schreiben von Byte in eine Datei in Java
  2. Verwendung von java.nio.file zum Schreiben von Bytes in eine Datei
  3. Verwenden der Apache Commons IO-Bibliothek zum Schreiben von Bytes in eine Datei in Java
Byte in eine Datei schreiben in Java

Dieses Programm zeigt, wie Sie in Java ein Byte-Array in eine Datei schreiben. Diese Aufgabe kann mit FileOutputStream und mit einigen in diesem Artikel erwähnten Bibliotheken ausgeführt werden.

Verwenden von FileOutputStream zum Schreiben von Byte in eine Datei in Java

Die Klasse FileOutputStream in Java ist ein Ausgabestream, der verwendet wird, um Daten oder Byte-Streams in eine Datei zu schreiben. Der Konstruktor FileOutputStream(File file) erstellt einen Dateiausgabestream, um in die Datei zu schreiben, die durch das File-Objekt file repräsentiert wird, das wir im folgenden Code erstellt haben.

Die Variable s vom Typ String wird an die Methode getBytes() übergeben, die den String in eine Folge von Bytes umwandelt und ein Array von Bytes zurückgibt. Die Methode write() nimmt das Byte-Array als Argument und schreibt b.length Bytes aus dem Byte-Array b in diesen Dateiausgabestrom.

Unter dem angegebenen Pfad wird eine Datei mit der Erweiterung .txt erstellt, und wenn wir diese öffnen, sehen wir den Inhalt wie den in der Variablen s gespeicherten String.

import java.io.File;
import java.io.FileOutputStream;

public class ByteToFile {
  public static void main(String args[]) {
    File file = new File("/Users/john/Desktop/demo.txt");
    try {
      FileOutputStream fout = new FileOutputStream(file);
      String s = "Example of Java program to write Bytes using ByteStream.";
      byte b[] = s.getBytes();
      fout.write(b);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Verwendung von java.nio.file zum Schreiben von Bytes in eine Datei

Das Java-Paket NIO ( New I/O) besteht aus statischen Methoden, die mit Dateien, Verzeichnissen und hauptsächlich mit dem Objekt Path arbeiten. Das Path.get() ist eine statische Methode, die eine Folge von Strings oder einen Pfad-String in einen Path umwandelt. Es ruft einfach FileSystems.getDefault().getPath() auf.

So können wir mit der Methode Files.write() ein Byte-Array b in eine Datei schreiben, indem wir den Pfad zur Datei übergeben und das Byte-Array aus einem String konvertieren.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class ByteToFile {
  public static void main(String args[]) {
    Path p = Paths.get("/Users/john/Desktop/demo.txt");
    try {
      String s = "Write byte array to file using java.nio";
      byte b[] = s.getBytes();
      Files.write(p, b);
    } catch (IOException ex) {
      System.err.format("I/O Error when copying file");
    }
  }
}

Verwenden der Apache Commons IO-Bibliothek zum Schreiben von Bytes in eine Datei in Java

Die Maven-Abhängigkeit für diese Bibliothek ist wie unten erwähnt.

   <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.6</version>
   </dependency>

Die Bibliothek Apache Commons IO hat die Klasse FilesUtils, sie hat die Methode writeByteArrayToFile(). Diese Methode verwendet den Zielpfad und die Binärdaten, die wir schreiben. Wenn unser Zielverzeichnis oder unsere Zieldatei nicht existiert, werden sie erstellt. Wenn die Datei vorhanden ist, wird sie vor dem Schreiben abgeschnitten.

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.FileUtils;

public class ByteToFile {
  public static void main(String args[]) {
    {
      File file = new File("doc.txt");
      byte[] data =
          "Here, we describe the general principles of 																									 photosynthesis"
              .getBytes(StandardCharsets.UTF_8);
      try {
        FileUtils.writeByteArrayToFile(file, data);
        System.out.println("Successfully written data to the file");
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}

Ausgabe:

Successfully written data to the file
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java Byte

Verwandter Artikel - Java File