2016-06-29 5 views
1

Ich habe ein Problem mit der Methode getAppHomePath(), diese gibt "file: // home /" im Debugger zurück, dann bekomme ich eine FileNotFoundException.getAppHomePath() scheint einen falschen Pfad im Simulator zu werfen?

-Code, wo es diese Ausnahme wirft:

fileName = "100004_2016-06-29.jpg" 
appHomePath = FileSystemStorage.getInstance().getAppHomePath(); 
img = Image.createImage(Storage.getInstance().createInputStream(appHomePath + fileName)); 

ExceptionMessage:

java.io.FileNotFoundException: C:\Users\xyz\.cn1\file___home_100004_2016-06-29.jpg (Das System kann die angegebene Datei nicht finden) 

so scheint es, dass es dieses Präfix "file___home_", ergänzt die den Weg verdirbt, habe ich auf jeden Fall eine Datei „100004_2016 -06-29.jpg "gespeichert unter diesem Pfad.

Das Snippet, das die unter Datei unter diesem Pfad erstellt ist:

img = Image.createImage(FileSystemStorage.getInstance().openInputStream(filePath)); 
OutputStream os = Storage.getInstance().createOutputStream(newFileName); 
ImageIO.getImageIO().save(img, os, ImageIO.FORMAT_JPEG, 1.0f); 

die filePath Variable von der Bilddatenbank zurückgeführt wird, so dass ich etwas unter% TEMP%.

Wie auch immer Speichern einer Datei funktioniert, Lesen funktioniert irgendwie nicht.

Bin ich etwas fehlt oder gibt es wirklich einen Fehler im Simulator-Code?

Antwort

0

Problem gelöst, es braucht nicht den AppHomePath, der Dateiname ist genug.

So einfach zu beheben, aber ja manchmal sein in den Details ...

1

Das Problem ist, dass man gemischte Nutzung der Storage & FileSystemStorage, die zwei sehr unterschiedliche Klassen. Leider ordnet der Simulator Storage ungefähr der gleichen Stelle zu wie er die FileSystemStorage abbildet, was wir wahrscheinlich beheben müssen, um solche Fälle zu vermeiden.

Sie müssen eine API auswählen und diese verwenden. ImageIO arbeitet mit FileSystemStorage, also benötigen Sie absolute Dateien dafür.