Wie konvertiere ich eine java.io.File
zu einer byte[]
?
Ich behaupte, dass es der "einfachste Weg" ist :)
Wie konvertiere ich eine java.io.File
zu einer byte[]
?
Der einfachste Weg, Bytes aus einer Datei zu lesen
import java.io.*;
class ReadBytesFromFile {
public static void main(String args[]) throws Exception {
// getBytes from anyWhere
// I'm getting byte array from File
File file = null;
FileInputStream fileStream = new FileInputStream(file = new File("ByteArrayInputStreamClass.java"));
// Instantiate array
byte[] arr = new byte[(int) file.length()];
// read All bytes of File stream
fileStream.read(arr, 0, arr.length);
for (int X : arr) {
System.out.print((char) X);
}
}
}
Nichts besonderes, aber du sagst einfachste und ich sehe mehr einfache Lösungen -> meiner Meinung nach ist es nicht die einfachste. Vielleicht war es das vor ein paar Jahren, aber die Welt ändert sich. Ich würde meine eigenen Lösungen nicht mit so einer Aussage kennzeichnen ;) Wenn du nur schreiben würdest "Meiner Meinung nach ist die einfachste " oder "die einfachste, die ich gefunden habe " Ich will dich nicht belästigen, dachte nur, es wäre nett, das zu kommunizieren.
Guave hat Files.toByteArray() zu bieten. Es hat mehrere Vorteile:
Mit dem gleichen Ansatz wie die Community-Wiki-Antwort, aber sauberer und sofort kompilierbar (bevorzugter Ansatz, wenn Sie keine Apache-Commons-Bibliotheken importieren wollen, z. B. auf Android):
public static byte[] getFileBytes(File file) throws IOException {
ByteArrayOutputStream ous = null;
InputStream ios = null;
try {
byte[] buffer = new byte[4096];
ous = new ByteArrayOutputStream();
ios = new FileInputStream(file);
int read = 0;
while ((read = ios.read(buffer)) != -1)
ous.write(buffer, 0, read);
} finally {
try {
if (ous != null)
ous.close();
} catch (IOException e) {
// swallow, since not that important
}
try {
if (ios != null)
ios.close();
} catch (IOException e) {
// swallow, since not that important
}
}
return ous.toByteArray();
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Eine Anwendung, die ich mir vorstellen kann, ist das Lesen von serialisierten Objekten aus einer Datei.
2 Stimmen
Eine andere Möglichkeit besteht darin, den Dateityp anhand der Kopfzeile zu ermitteln.
0 Stimmen
Try This byte[] bytes = null; BufferedInputStream fileInputStream = null; try{File file = new File(filePath); fileInputStream = new BufferedInputStream(new FileInputStream(file)); //fileInputStream = Thread. currentThread().getContextClassLoader().getResourceAsStream(this.filePath); bytes = new byte[(int) file.length()]; fileInputStream.read(bytes); } catch(FileNotFoundException ex){ throw ex; }