内部存储/外部存储

内部/外部存储
权限
内部/外部存储
外部存储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;
}

}

相关文章: