码迷,mamicode.com
首页 > 移动开发 > 详细

android之文件存储和读取

时间:2016-06-04 11:59:30      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

一、权限问题


 

  手机中存储空间分为ROM和SDcard,ROM中放着操作系统以及我们安装的APP,而sdcard中一般放置着我们APP产生的数据。当然,Android也为每个APP在ROM中创建一个数据存储空间,具体目录是/data/data下。在真机中调试中,该目录对于其他用户是没有开启任何权限,所以在DDMS中我们是打不开该目录的。

  解决方案就是我们通过adb登录到我们手机上,然后直接切换到root用户,这时后手机可能会询问是否授权,我们则选择允许。这样我们就成为root用户了。然后我们在更改/data目录的权限,这样就能在DDMS上看到/data下的内容了。具体操纵如下:

技术分享

二、布局设置


 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="xidian.dy.com.chujia.MainActivity">
    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入用户名"/>
    <EditText
        android:id="@+id/password"
        android:inputType="textPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入密码"/>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <CheckBox
            android:id="@+id/remember"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="记住用户名和密码"
            android:layout_centerVertical="true"/>
        <Button
            android:id="@+id/login"
            android:layout_alignParentRight="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录"/>
    </RelativeLayout>
</LinearLayout>

三、java代码


 

package xidian.dy.com.chujia;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.util.Log;
import android.util.PrintWriterPrinter;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt = (Button) findViewById(R.id.login);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText etUsername = (EditText) findViewById(R.id.username);
                String username = etUsername.getText().toString();
                EditText etPassword = (EditText) findViewById(R.id.password);
                String password = etPassword.getText().toString();
                Log.e("Login", "登录成功");
                CheckBox cb = (CheckBox) findViewById(R.id.remember);
                if(cb.isChecked()){
                    String path = "/data/data/xidian.dy.com.chujia/info.txt";
                    File file = new File(path);
                    PrintWriter pw = null;
                    try {
                        pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))));
                    } catch (FileNotFoundException e) {
                        Log.e("MainActivity","file not found");
                    }
                    pw.println(username);
                    pw.println(password);
                    pw.close();
                }

            }
        });
    }
}

  Android为每个app在/data/data下创建一个文件夹,文件夹的名字就是APP的包名。我们的APP报名为xidian.dy.com.chujia,所以为了保存用户数据,我在/data/data/xidian.dy.com.chujia/创建一个infro.txt文件夹,然后将用户名和密码包存到该文件夹下。对用户名和密码的保存就使用普通的java IO流即可。

android之文件存储和读取

标签:

原文地址:http://www.cnblogs.com/xidongyu/p/5558305.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!