- Android
- 2012-05-24
この記事は最終更新日から1年以上経過しています。
ローカルファイルへのアクセスについては[ローカルファイルのアクセス]、[ファイル入出力 [Android]]でも紹介しています。
同様の方法でおこなうとSDカード上のファイルの読み書きはできません。
ローカルファイルを読み込み・保存する場合はopenFileOutputメソッド等を使用しますが、引数に指定するファイルパスはフルパスではなく、ファイル名のみです。
引数に「/」(パスのセパレイター)が使用できなくなっています。
[スクリーンショットの保存]でも保存方法の違いを書いていますが、改めてSDカードのファイル入出力について書いておきます。
テキストファイルの読み書きを例とします。
テキストファイルの読み込み
private void readFile(String filename) { FileInputStream inputStream = null; BufferedReader reader = null; try { inputStream = new FileInputStream(filename); reader = new BufferedReader( new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { //Log.v(TAG, line); //読み込んだデータの処理を記述 } } catch (IOException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { reader.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }
テキストファイルの書き込み
private void writeFile(String filename, String src){ try { FileOutputStream outputStream = new FileOutputStream(filename); BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(outputStream)); writer.write(src); //writer.flush(); //flushでも書き込んでくれるよう writer.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
2,666 views