内部存储/外部存储
权限
外部存储mnt/shell/emulated/0
public void show2(){
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File file = Environment.getExternalStorageDirectory();
File file1 = new File(file, "b.txt");
try {
FileOutputStream fileOutputStream = new FileOutputStream(file1);
fileOutputStream.write("你好".getBytes());
} catch (Exception e) {
e.printStackTrace();
}
}
}
三级缓存
内部data/data/项目名
SharedPreferences test1 = getSharedPreferences(“test1”, MODE_PRIVATE);
String username = test1.getString(“username”, null);
String password = test1.getString(“password”, null);
name.setText(username);
pwd.setText(password);
}
public void show1(){
SharedPreferences test1 = getSharedPreferences("test1", MODE_PRIVATE);
SharedPreferences.Editor edit = test1.edit();
edit.putString("username","小明");
edit.putString("password","123");
edit.commit();
}
三级缓存下载图片
package com.example.a123.day58lianxi1;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.io.File;
import java.util.concurrent.ExecutionException;
public class Main3Activity extends AppCompatActivity {
Button button;
ImageView imageView;
String url="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2850241985,4189851809&fm=27&gp=0.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
button = findViewById(R.id.b3);
imageView = findViewById(R.id.amg);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
show1();
}
});
}
public void show1() {
MyLruCache myLruCache = new MyLruCache();
Bitmap bitmap1 = myLruCache.getBitmap("大");
if (bitmap1 != null) {
imageView.setImageBitmap(bitmap1);
} else {
MyPis myPis = new MyPis();
File read = myPis.read();
if (read != null) {
Bitmap bitmap = BitmapFactory.decodeFile(read.getAbsolutePath());
imageView.setImageBitmap(bitmap);
myLruCache.sava("大",BitmapFactory.decodeFile(read.getAbsolutePath()));
} else try {
byte[] bytes = new MyTask().execute(url).get();
myPis.writ(bytes);
imageView.setImageBitmap(BitmapFactory.decodeByteArray(bytes, 0, bytes.length));
myLruCache.sava("大",BitmapFactory.decodeByteArray(bytes,0,bytes.length));
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
package com.example.a123.day58lianxi1;
import android.os.AsyncTask;
public class MyTask extends AsyncTask<String,Void,byte[]> {
@Override
protected byte[] doInBackground(String… strings) {
return Http.gethttp(strings[0]);
}
}
package com.example.a123.day58lianxi1;
import android.os.Environment;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class MyPis {
private static MyPis myPis = new MyPis();
public MyPis() {
}
public static MyPis getMyPis(){
return myPis;
}
public File read(){
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File file = Environment.getExternalStorageDirectory();
File file1 = new File(file, "tu.jpg");
if (file1.exists()){
return file1;
}else{
return null;
}
}
return null;
}
public void writ(byte[] bytes){
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File path = Environment.getExternalStorageDirectory();
File file = new File(path, "tu.jpg");
try {
file.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.example.a123.day58lianxi1;
import android.graphics.Bitmap;
import android.util.LruCache;
public class MyLruCache {
LruCache<String,Bitmap> lruCache;
public MyLruCache(){
int max = (int)Runtime.getRuntime().maxMemory();
lruCache= new LruCache<String,Bitmap>(max/8){
@Override
protected int sizeOf(String key, Bitmap value) {
return super.sizeOf(key, value);
}
};
}
public void sava(String k,Bitmap v){
if (lruCache.get(k) ==null){
lruCache.put(k,v);
}
}
public Bitmap getBitmap(String s){
return lruCache.get(s);
}
}
package com.example.a123.day58lianxi1;
import android.os.Environment;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class Http {
public static byte[] gethttp(String url){
byte[] b;
try {
URL url1 = new URL(url);
HttpURLConnection urlConnection = (HttpURLConnection)url1.openConnection();
urlConnection.connect();
if (urlConnection.getResponseCode()==200){
InputStream inputStream = urlConnection.getInputStream();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int len=0;
byte[] bytes = new byte[1024];
while ((len = inputStream.read(bytes))!=-1){
byteArrayOutputStream.write(bytes,0,len);
}
b = byteArrayOutputStream.toByteArray();
return b;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}