ファイル入出力時例外 Java.illegalArgumentException contains a path separator
ファイル入出力時にopenFileOutputもしくはopenFileInputを利用した場合、
これらはパスを指定できないので指定しようとすると上記エラーが発生。
おとなしくFileInputStreamもしくはFileOutputStreamを使ってやればいい。
FileOutputStream fos = null; BufferedWriter bw = null; try{ /*パス指定ができないため例外発生 fos = this.openFileOutput("/sdcard/xxx.txt", mode); */ fos = new FileOutputStream(new File("/sdcard/xxx.txt"); bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8")); 処理 }catch(Exception){ }finally{ try{ fos.close(); bw.close(); }catch(IOException ioe){ }
あと、SDカード下の入出力時はマニュフェストファイルに以下を追加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
AndroidでJava7はまだ推奨されないのかな?
try(FileOutputStream fos = new FileOutputStream(new File("sdcard/sort_log.txt")); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8"))){ }
コード量が違いすぎる…
あと、BasicFileAttributes使ってファイルの作成日時を楽に取得したい