Я получаю исключение FileNotFoundException в строке, где объявляю FileOutputStream. Я не совсем уверен, почему это происходит особенно с тех пор, как я создаю новый файл перед созданием FileOutputStream. Я не опубликовал всю функцию, но в основном он откладывает регистраторы гироскопа и акселерометра и записывает их вывод в CSV-файл. Любая помощь будет очень признательна, потому что я не знаю, что не так.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 18684-18684 /? W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Pictures/2016-03-22_11:43:40_A.csv: open failed: EACCES (разрешение отклонено) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at 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.TestEnvironmentActivity.stopRecording (TestEnvironmentActivity.java:172) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at com.example.alex.parkinsonsdiseaseapp.TestEnvironmentActivity $ 3.onClick (TestEnvironmentActivity.java:120) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at android.view.View.performClick (View.java:5226) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at android.view.View $ PerformClick.run (View.java:21266) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at 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 (собственный метод) 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: вызвано: android.system.ErrnoException: open failed: EACCES (разрешение отклонено) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at libcore.io.Posix.open (родной метод) 03-22 11: 43: 40.859 18684-18684 /? W/System.err: at 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 больше
Я думаю, что вы не можете использовать: в именах файлов. – DonLeopardo
Пробовал. Это не работает. –
Можете ли вы добавить 'file.createNewFile();' перед объявлением fos? Не должно иметь значения; но стоит попробовать, я думаю –