SharedPreferences存储+SD卡存储
SharedPreferences存储
储存和取出
//write 和read是按钮
public void write(View view) {
SharedPreferences one = getSharedPreferences("one", MODE_PRIVATE);
SharedPreferences.Editor edit = one.edit();
edit.putString("string","小明");
edit.putBoolean("boolean",true);
edit.putFloat("float",1.1f);
edit.putInt("int",2);
edit.putLong("long",123456789);
edit.commit();
}
public void read(View view) {
SharedPreferences one = getSharedPreferences("one", MODE_PRIVATE);
String name = one.getString("string", "阿巴阿巴");
Toast.makeText(this, name, Toast.LENGTH_SHORT).show();
}
登录自动保存账号和密码
private EditText username;
private EditText password;
private CheckBox cbRemember;
private Button login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
username = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);
cbRemember = (CheckBox) findViewById(R.id.cb_remember);
login = (Button) findViewById(R.id.login);
SharedPreferences login = getSharedPreferences("login", MODE_PRIVATE);
String user = login.getString("user", "");
String pwd = login.getString("pwd", "");
boolean ischeck = login.getBoolean("ischeck", false);
username.setText(user);
password.setText(pwd);
cbRemember.setChecked(ischeck);
this.login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String user = username.getText().toString();
String pwd = password.getText().toString();
if (cbRemember.isChecked()){
SharedPreferences login = getSharedPreferences("login", MODE_PRIVATE);
SharedPreferences.Editor edit = login.edit();
edit.putString("user",user);
edit.putString("pwd",pwd);
edit.putBoolean("ischeck",true);
edit.commit();
}else {
SharedPreferences login = getSharedPreferences("login", MODE_PRIVATE);
SharedPreferences.Editor edit = login.edit();
edit.clear();
edit.commit();
}
}
});
}
CD卡
CD卡内部存储
private Button read;
private Button write;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
read = (Button) findViewById(R.id.read);
write = (Button) findViewById(R.id.write);
//写文件
write.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
FileOutputStream fileOutputStream = openFileOutput("aa.txt", MODE_PRIVATE);
fileOutputStream.write("耗子尾汁".getBytes());
fileOutputStream.flush();
fileOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
//读文件
read.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
FileInputStream fileInputStream = openFileInput("aa.txt");
byte[] bytes=new byte[1024];
int len=0;
while ((len=fileInputStream.read(bytes))!=-1){
Toast.makeText(Main3Activity.this, new String(bytes,0,len), Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
CD外部储存
private static final String TAG = "CD_Main4Activity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cd__main4);
//动态获取写和读的权限
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE},100);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode==100&&grantResults[0]==0){
Toast.makeText(this, "同意", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(this, "不同意", Toast.LENGTH_SHORT).show();
}
}
public void read(View view) throws Exception {
//状态
String externalStorageState = Environment.getExternalStorageState();
if (externalStorageState.equals(Environment.MEDIA_MOUNTED)) {//能不能用
//获取路径
File file = Environment.getExternalStorageDirectory();
FileInputStream fileInputStream = new FileInputStream(new File(file, "login.txt"));
int len = 0;
byte[] bytes = new byte[1024];
while ((len = fileInputStream.read(bytes)) != -1) {
Toast.makeText(this, new String(bytes, 0, len), Toast.LENGTH_SHORT).show();
}
}
}
public void write(View view) throws Exception {
//内存卡的状态(是否存在)
String externalStorageState = Environment.getExternalStorageState();
if (externalStorageState.equals(Environment.MEDIA_MOUNTED)){//能不能用
//获取路径
File file = Environment.getExternalStorageDirectory();
Log.i(TAG, "write: "+file);
FileOutputStream fileOutputStream = new FileOutputStream(new File(file, "login.txt"));
fileOutputStream.write("阿巴阿巴".getBytes());
fileOutputStream.flush();
fileOutputStream.close();
}
}
CD卡中储存和读取图片
权限
//静态权限和网络权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
动态获取权限
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},100);
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode==100&&grantResults[0]==0){
//网络权限同意后开启异步
new myclass().execute("http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg");
}else {
}
}
异步
class myclass extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
if (urlConnection.getResponseCode()==200){
InputStream inputStream = urlConnection.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream(new File(Environment.getExternalStorageDirectory(), "aa.jpg"));
int len=0;
byte[] bytes=new byte[1024];
while ((len=inputStream.read(bytes))!=-1){
fileOutputStream.write(bytes,0,len);
fileOutputStream.flush();
}
fileOutputStream.close();
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
读取图片
File file = new File(Environment.getExternalStorageDirectory(), "aa.jpg");
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
img.setImageBitmap(bitmap);