zoukankan      html  css  js  c++  java
  • 内部存储 openFileInputStream openFileOutputStream

      1 package com.qianfeng.gp08_day24_internalstorage;
      2 
      3 import java.io.FileInputStream;
      4 import java.io.FileNotFoundException;
      5 import java.io.FileOutputStream;
      6 import java.io.IOException;
      7 import java.util.Arrays;
      8 
      9 import android.os.Bundle;
     10 import android.app.Activity;
     11 import android.app.AlertDialog;
     12 import android.content.Context;
     13 import android.content.DialogInterface;
     14 import android.content.DialogInterface.OnClickListener;
     15 import android.view.Menu;
     16 import android.view.MenuItem;
     17 import android.view.View;
     18 import android.widget.ArrayAdapter;
     19 import android.widget.EditText;
     20 
     21 /**
     22  * 内部存储: SharedPreferences属于内部存储
     23  *        openFileOutput()  openFileInput()
     24  *        其实还是以文件的形式存储数据,IO   
     25  *                                   /shared_prefs/
     26  * 内部存储的文件的存放位置  /data/data/(包名)/files/
     27  *
     28  */
     29 public class MainActivity extends Activity {
     30 
     31     private EditText edit_fileName,edit_content;
     32     
     33     //点击菜单项,弹出对话框,列出所有的内部存储空间中的文件
     34     private AlertDialog  fileDialog;
     35     private ArrayAdapter<String> adapter;
     36     
     37     @Override
     38     protected void onCreate(Bundle savedInstanceState) {
     39         super.onCreate(savedInstanceState);
     40         setContentView(R.layout.activity_main);
     41         
     42         edit_fileName = (EditText) findViewById(R.id.edit_fileName);
     43         edit_content = (EditText) findViewById(R.id.edit_fileContent);
     44         
     45         initDialog();
     46     }
     47     
     48     //初始化对话框的功能
     49     public void initDialog()
     50     {
     51         adapter  = new ArrayAdapter<String>(this,R.layout.item_layout);
     52         //得到内部存储空间中的所有的文件名 fileList()
     53         adapter.addAll(Arrays.asList(fileList()));
     54         
     55         fileDialog = new AlertDialog.Builder(this)
     56                                     .setTitle("文件选择对话框")
     57                                     .setIcon(R.drawable.ic_launcher)
     58                                     .setAdapter(adapter, new OnClickListener() {
     59                                         
     60                                         @Override
     61                                         public void onClick(DialogInterface dialog, int which) {
     62                                             //得到文件名
     63                                             String filename = adapter.getItem(which);
     64                                             edit_fileName.setText(filename);
     65                                             // 读取文件
     66                                             try {
     67                                                 readData(null);
     68                                             } catch (IOException e) {
     69                                                 e.printStackTrace();
     70                                             }
     71                                         }
     72                                     })
     73                                     .create();
     74         
     75     }
     76     
     77     
     78     public void saveFile(View v) throws IOException//把数据保存到内部存储空间的文件中
     79     {
     80         //获取文件名和文件内容
     81         String filename = edit_fileName.getText().toString().trim();
     82         String filecontent = edit_content.getText().toString().trim();
     83         
     84         FileOutputStream fos = openFileOutput(filename, Context.MODE_PRIVATE);
     85         fos.write(filecontent.getBytes());
     86         
     87         fos.close();                                                
     88     }
     89     
     90     public void readData(View v) throws IOException
     91     {
     92         //获取被读取的文件名
     93         String filename = edit_fileName.getText().toString().trim();
     94         
     95         //读取文件
     96         FileInputStream fis = openFileInput(filename);
     97         byte[] arr = new byte[fis.available()];
     98         int len = fis.read(arr);
     99         edit_content.setText(new String(arr,0,len));
    100         fis.close();
    101     }
    102 
    103     @Override
    104     public boolean onCreateOptionsMenu(Menu menu) {
    105         getMenuInflater().inflate(R.menu.main, menu);
    106         return true;
    107     }
    108     @Override
    109     public boolean onOptionsItemSelected(MenuItem item) {
    110         if(item.getItemId()==R.id.action_selectFile)
    111         {
    112             fileDialog.show();
    113         }
    114         return super.onOptionsItemSelected(item);
    115     }
    116 
    117 }
    MainActivity
     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:paddingBottom="@dimen/activity_vertical_margin"
     6     android:paddingLeft="@dimen/activity_horizontal_margin"
     7     android:paddingRight="@dimen/activity_horizontal_margin"
     8     android:paddingTop="@dimen/activity_vertical_margin"
     9     tools:context=".MainActivity" >
    10 
    11     <EditText
    12         android:id="@+id/edit_fileName"
    13         android:layout_width="wrap_content"
    14         android:layout_height="wrap_content"
    15         android:hint="输入文件名" />
    16 
    17     <Button
    18         android:id="@+id/btn_open"
    19         android:layout_width="wrap_content"
    20         android:layout_height="wrap_content"
    21         android:onClick="readData"
    22         android:layout_toRightOf="@id/edit_fileName"
    23         android:text="打开" />
    24 
    25     <Button
    26         android:id="@+id/btn_save"
    27         android:layout_width="wrap_content"
    28         android:layout_height="wrap_content"
    29         android:layout_toRightOf="@id/btn_open"
    30         android:onClick="saveFile"
    31         android:text="保存" />
    32     <EditText
    33         android:id="@+id/edit_fileContent"
    34         android:layout_width="match_parent"
    35         android:layout_height="match_parent"
    36         android:layout_below="@id/btn_save"
    37         android:background="@android:drawable/edit_text"
    38         android:hint="文件内容" />
    39 
    40 </RelativeLayout>
    activity_main
    1 <?xml version="1.0" encoding="utf-8"?>
    2 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    3     android:layout_width="match_parent"
    4     android:layout_height="wrap_content"
    5     android:textSize="20sp" 
    6     android:textColor="#000"
    7     />
    8     
    item——layout
  • 相关阅读:
    类和结构体的区别
    List中的select和where 方法
    js报错,Uncaught SyntaxError: Unexpected token }
    去除list集合中重复项的几种方法
    new
    Dynamic
    ie8下缓存
    datagrid中动态url
    从后台序列化后的类的字符串
    抽象工厂
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4822418.html
Copyright © 2011-2022 走看看