// //

ファイル入出力時例外 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使ってファイルの作成日時を楽に取得したい