Hier ist mein Code-Schnipsel:Guava-Funktion toByteArray() gibt null zurück?
File file = new File("encryptedImageFileName");
byte[] encryptedBytes = null;
try
{
encryptedBytes = Files.toByteArray(file);
}
catch (Exception e)
{}
Hier ist ein Bild der beiden Variablen encryptedBytes und Datei, nachdem ich mit dem Debugger,
http://i.stack.imgur.com/5nJgs.png
Ich bin fast sicher, trat durch dass alle Sachen unter Datei bedeutet, dass es tatsächlich die Datei gefunden, aber wie Sie sehen können encryptedByt es ist null, also Files.toByteArray (Datei) hat nicht funktioniert ... Warum ist das passiert?
********************************** EDIT *********** *********************
Hier ist mein Code, wo ich versuche, die Byte-Array zu schreiben, ist da etwas nicht in Ordnung?
FileOutputStream outputStream;
try
{
outputStream = openFileOutput("encryptedImageFileName", Context.MODE_PRIVATE);
outputStream.write(encodedByteArrayImage);
outputStream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
Dies wirft
java.io.FileNotFoundException: encryptedImageFileName: open failed: ENOENT (No such file or directory)
Der Debugger sagt, dass encodedByteArrayImage eine (nicht-null) Wert hat.
Louis liefert Details in seiner Antwort, aber es ist erwähnenswert: * Ausnahmen nicht ignorieren *. Der Compiler hat Ihnen im Wesentlichen gesagt, dass die I/O-Operation fehlschlagen kann und Sie in einen try/catch setzen, damit Sie diese Möglichkeit nutzen können. Wenn der Code nicht funktioniert hat, sollte eine Ausnahme einer Ihrer ersten Debugging-Gedanken sein. (In der Tat, mit einigem Einloggen des Ausnahmeblocks, hätte es überhaupt kein Geheimnis gegeben). Nur ein freundlicher Tipp für die Zukunft ... –
Welche Ausnahme wird geworfen? – EJP
java.io.FileNotFoundException: encryptedImageFileName: Öffnen fehlgeschlagen: ENOENT (Keine solche Datei oder Verzeichnis) –