您的位置:首页 > 移动开发 > Android开发

Android学习之文件存储方式

2015-09-03 17:02 375 查看

文件存储的几种方式

存储在手机内部空间,路径是data/data/项目的包名

存储在SDK中,路径有三个,现在的位置在storage/sdcard

使用sharedpreferences进行文件的存储,路径是data/data/包名/shared_prefs

1.将文件保存在手机内部空间

public class MainActivity extends Activity{

private EditText user;
private EditText psw;
private Button bt;
private  FileOutputStream fos ;
private FileInputStream fis;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
user = (EditText)findViewById(R.id.user1);
psw = (EditText)findViewById(R.id.psw1);
bt = (Button) findViewById(R.id.bt);

//路径是data/data/包名
final File file = new File(getFilesDir(),"test.txt");
//读取数据
if(file.exists()){
try {
fis = new FileInputStream(file);
//把字节流转成字符流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//读取文件
String text = br.readLine();
String[] s = text.split("##");
user.setText(s[0]);
psw.setText(s[1]);
} catch (Exception e) {
e.printStackTrace();
}

}
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//写入数据
try {
String usert = user.getText().toString();
String pswt = psw.getText().toString();
fos = new FileOutputStream(file);
fos.write((usert+"##"+pswt).getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}


2.将文件保存在SDK中(要取得android权限)

public class MainActivity extends Activity{

private EditText user;
private EditText psw;
private Button bt;
private  FileOutputStream fos ;
private FileInputStream fis;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
user = (EditText)findViewById(R.id.user1);
psw = (EditText)findViewById(R.id.psw1);
bt = (Button) findViewById(R.id.bt);

//使用API获取sdcard路径
final File file = new File(Environment.getExternalStorageDirectory(),"test.txt");
//读取数据
if(file.exists()){
try {
fis = new FileInputStream(file);
//把字节流转成字符流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//读取文件
String text = br.readLine();
String[] s = text.split("##");
user.setText(s[0]);
psw.setText(s[1]);
} catch (Exception e) {
e.printStackTrace();
}

}
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//写入数据
try {
String usert = user.getText().toString();
String pswt = psw.getText().toString();
fos = new FileOutputStream(file);
fos.write((usert+"##"+pswt).getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}


3.以sharedpreferences方式存储数据

public class MainActivity extends Activity{

private EditText user;
private EditText psw;
private Button bt;
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
user = (EditText)findViewById(R.id.user1);
psw = (EditText)findViewById(R.id.psw1);
bt = (Button) findViewById(R.id.bt);

//使用私有的方式存储和读取数据
sharedPreferences = getSharedPreferences("test", Context.MODE_PRIVATE);
//使文件处于可编辑状态
editer = sharedPreferences.edit();
//读取数据
user.setText(sharedPreferences.getString("user",""));
psw.setText(sharedPreferences.getString("psw",""));
//点击进行存储
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//写入数据
editer.putString("user",user.getText().toString());
editer.putString("psw",user.getText().toString());
editer.commit();//进行保存操作
}
});
}
}


通常sharedPreferences用来存储登录数据,但是这很不安全,需要进行一些相关的加密!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 存储 手机