android开发第二天文件存储

文件存储:

public class MainActivity extends Activity {
    EditText mname, mage;
    TextView mtv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mname = (EditText) findViewById(R.id.editText1);
        mage = (EditText) findViewById(R.id.editText2);
        mtv = (TextView) findViewById(R.id.textView1);
    }

    public void onClick(View v) {
        String name = mname.getText().toString();
        int age = Integer.parseInt(mage.getText().toString());
        String cont = "name=" + name + ",age=" + age + "\n";
        try {
            int id = v.getId();
            // 内部保存
            if (id == R.id.button1) {
                FileOutputStream fos = this.openFileOutput("mytext.txt",
                        Context.MODE_APPEND | Context.MODE_WORLD_WRITEABLE
                                | Context.MODE_WORLD_READABLE);
                fos.write(cont.getBytes());
                fos.close();
                Toast.makeText(this, "写入完成", 1).show();
            }
            // 读取
            else if (id == R.id.button2) {
                FileInputStream fis = this.openFileInput("mytext.txt");
                byte[] bytes = new byte[fis.available()];
                fis.read(bytes);
                fis.close();
                String str = new String(bytes);
                mtv.setText(str);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

其他app如果想要访问这个mytext.txt文件格式如下:

public class MainActivity extends Activity {
    TextView mcontent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mcontent=(TextView) findViewById(R.id.textView1);
    }
    public void onClick(View v){
        switch (v.getId()) {
        case R.id.button1:
            try {
                readRemoteFileByAbslutePath();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            break;
        case R.id.button2:
            try {
                WriteRemoteFileByAbslutePath();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            break;
        default:
            break;
        }
    }
    /**
     * 通过文件绝对路径读取远程文件
     * @throws Exception
     */
    public void readRemoteFileByAbslutePath() throws Exception{
        String path = "/data/data/com.nanguabing.filedemo/files/mytext.txt" ;
        FileInputStream fis = new FileInputStream(path);
        byte[] bytes = new byte[fis.available()];
        fis.read(bytes);
        fis.close();
        String str = new String(bytes);
        mcontent.setText(str);
        Log.i("Other", str);
    }
    
    /**
     * 通过文件绝对路径读取远程文件
     * @throws Exception
     */
    public void WriteRemoteFileByAbslutePath() throws Exception{
        String path = "/data/data/com.nanguabing.filedemo/files/mytext.txt" ;
        FileOutputStream fos = new FileOutputStream(path,true);
        fos.write("other write! ".getBytes());
        fos.close();
        Log.i("Other", "other write over!");
    }
    /**
     * 通过包相关上下文写入远程文件
     * @throws Exception
     */
    public void readRomoteByPackageContext() throws Exception {
        String pname = "com.nanguabing.filedemo";
        Context ctx = this.createPackageContext(pname,
                Context.CONTEXT_IGNORE_SECURITY);
        FileInputStream fis = ctx.openFileInput("mytext.txt");
        byte[] bytes = new byte[fis.available()];
        fis.read(bytes);
        fis.close();
        Log.i("Other",new String(bytes));
    }
    
    /**
     * 通过包相关上下文写入远程文件
     */
    public void readRomoteByPackageContext2() throws Exception {
        String pname = "com.nanguabing.filedemo";
        Context ctx = this.createPackageContext(pname,
                Context.CONTEXT_INCLUDE_CODE);
        FileInputStream fis = ctx.openFileInput("mytext.txt");
        byte[] bytes = new byte[fis.available()];
        fis.read(bytes);
        fis.close();
        Log.i("Other",new String(bytes));
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

 

移动开发qq群:59516399
csdn下载地址:http://download.csdn.net/detail/wenwei19861106/4975929

posted on 2013-01-08 22:12  南瓜饼  阅读(1086)  评论(5编辑  收藏  举报

导航