- openFileInput・openFileOutputを使用して、ファイルに対して読み書きを行います。
このAPIは、Contextクラスにより提供されています(ActivityクラスはContextを継承)。
public abstract class Context { public abstract FileInputStream openFileInput(String name); public abstract FileOutputStream openFileOutput(String name, int mode); }
- アプリケーションのデータ保存領域は、次のディレクトリになります。
/data/data/[package name]/files/
- ファイル名に、セパレータ文字(/)が含まれていると、IllegalArgumentExceptionでcontains a path separatorのエラーが発生します。
- openFileOutput(String name, int mode)を実行し、FileOutputStreamのインスタンスを生成します。
- 第1引数: ファイル名
- 第2引数: ファイル作成モード(通常は、MODE_PRIVATEを使用)
モード | 用途 |
---|---|
MODE_PRIVATE | このアプリからのみ使用可能なモード |
MODE_APPEND | 追記モード |
MODE_WORLD_READABLE | 他のアプリケーションからも読み込み可能なモード |
MODE_WORLD_WRITEABLE | 他のアプリケーションからも書き込み可能なモード |
public class SampleActivity extends Activity { private String fileName = "sample.txt"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { // ストリームを開く FileOutputStream output = openFileOutput(fileName, MODE_PRIVATE); // 書き込み output.write(str.getBytes()); // ストリームを閉じる output.close(); } catch (IOException e) { e.printStackTrace(); } } }
public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.sample); try { OutputStream out = openFileOutput("hoge.png", MODE_PRIVATE); bm.compress(Bitmap.CompressFormat.PNG, 100, out); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
引数 | 説明 |
---|---|
format | Bitmap.CompressFormat.JPEGまたはBitmap.CompressFormat.PNG |
quality | 0から100の値を指定(普通は100?) |
stream | 圧縮したビットストリームを流し込む先を指定 |
ファイル(sample.txt)を読み出し, テキストビューに表示する。
public class SampleActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView text = (TextView)findViewById(R.id.textview_id); BufferedReader in = null; try { FileInputStream file = openFileInput("sample.txt"); in = new BufferedReader(new InputStreamReader(file)); text.setText(in.readLine()); in.close(); } catch (IOException e) { e.printStackTrace(); } } }
public class Main2Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView imageView = (ImageView) findViewById(R.id.image); Bitmap bm = null; try { FileInputStream in = openFileInput("hoge.png"); BufferedInputStream binput = new BufferedInputStream(in); ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] w = new byte[1024]; while (binput.read(w) >= 0) { out.write(w, 0, 1024); } byte[] byteData = out.toByteArray(); bm = BitmapFactory.decodeByteArray(byteData, 0, byteData.length); in.close(); binput.close(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } imageView.setImageBitmap(bm); } }
参考までに、ネットワークから画像ファイルを取得するサンプルです。
DefaultHttpClient client = new DefaultHttpClient(); httpResponse = client.execute(new HttpGet(url)); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { httpEntity = httpResponse.getEntity(); final InputStream in = httpEntity.getContent(); Bitmap bm = BitmapFactory.decodeStream(in); imageView.setImageBitmap(bm); }
このページへのコメント
c7Ey3W Thanks for sharing, this is a fantastic post.Thanks Again. Really Cool.
vetting nobunaga trimaran
http://download.pioneer.djs.1.0.softwarenvm.com
Fa4b1j <a href="http://kjakkuabeyce.com/">kjakkuabeyce</a>, [url=http://itnkfwzqimtj.com/]itnkfwzqimtj[/url], [link=http://fsdybjdtvnvv.com/]fsdybjdtvnvv[/link], http://mkypdkpiqebn.com/
http://atyhvegtgdug.com/
LCTqlZ <a href="http://jmocjyfhlytc.com/">jmocjyfhlytc</a>, [url=http://plgrkcizikkn.com/]plgrkcizikkn[/url], [link=http://zemwmaxwjzlc.com/]zemwmaxwjzlc[/link], http://rxytmtvvjhig.com/
http://xbuxjaiokccy.com/
kampala trustworthiness tid
http://newnaturalpills.com