Ich erhalte eine FileNotFoundException in der Zeile, in der ich den FileOutputStream deklariere. Ich bin nicht wirklich sicher, warum das passiert, besonders da ich eine neue Datei mache, bevor ich den FileOutputStream erstelle. Ich habe nicht die gesamte Funktion gepostet, aber im Grunde nimmt die Registrierung der Sensoren Gyroskop und Beschleunigungssensor auf und schreibt ihre Ausgabe in eine .csv-Datei. Jede Hilfe würde sehr geschätzt werden, weil ich keine Ahnung habe, was falsch ist.Android: Java.io.fileNotFoundException
protected void stopRecording() throws IOException{
sm.unregisterListener(this);
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
//file name is the current date and time
cal = Calendar.getInstance(TimeZone.getDefault());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_hh:mm:ss");
String output = sdf.format(cal.getTime()).toString();
File file = new File(path, output+ "_A" + ".csv");
FileOutputStream fos = new FileOutputStream(file);
out = new BufferedWriter(new OutputStreamWriter(fos));
for(int i = 0; i < a.size(); i++){
try {
out.write(a.get(i));
} catch (IOException e1) {
e1.printStackTrace();
}
}
03-22 11: 43: 40,845 18.684-18.684 /? W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Pictures/2016-03-22_11:43:40_A.csv: Öffnen fehlgeschlagen: EACCES (Berechtigung verweigert) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: bei libcore.io.IoBridge.open (IoBridge.java:452) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at java.io.FileOutputStream. (FileOutputStream.java:87) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at java.io.FileOutputStream. (FileOutputStream.java:72) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at com.example.alex.parkinsonsdiseaseapp.TestUmgebungActivity.stopRecording (TestEnvironmentActivity.java:172) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at com.beispiel.alex.parkinsonsdiseaseapp.TestEnvironmentActivity $ 3.onClick (TestEnvironmentActivity.java:120) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: bei android.view.View.performClick (View.java:5226) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: bei android.view.View $ PerformClick.run (View.java:21266) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: bei android.os.Handler.handleCallback (Handler.java:739) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at android.os.Handler.dispatchMessage (Handler.java:95) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at android.os.Looper.loop (Looper.java:168) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at android.app.ActivityThread.main (ActivityThread.java:5845) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at java.lang.reflect.Method.invoke (systemeigene Methode) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:797) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:687) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: verursacht durch: android.system.ErrnoException: Öffnen fehlgeschlagen: EACCES (Berechtigung verweigert) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: bei libcore.io.Posix.open (native Methode) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: bei libcore.io.BlockGuardOs.open (BlockGuardOs.java:186) 03-22 11: 43: 40.860 18684-18684 /? W/System.err: at libcore.io.IoBridge.open (IoBridge.java:438) 03-22 11: 43: 40.860 18684-18684 /? W/System.err: ... 13 mehr
Ich denke, dass Sie nicht verwenden können: in Dateinamen. – DonLeopardo
Versuchte es. Es hat nicht funktioniert. –
Können Sie 'file.createNewFile();' vor der fos-Deklaration hinzufügen? Sollte keinen Unterschied machen; aber einen Versuch wert, denke ich –