网络下载Json和图片存到SD卡,并读取

主页面按钮设置点击事件

public class MainActivity extends AppCompatActivity {
    private Button writeJson;
    private Button readJson;
    private Button writeImage;
    private Button readImage;
    private ImageView ivImage;

    private String url_json = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1";
    private String url_pic = "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2127.jpg";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        writeJson = (Button) findViewById(R.id.write_json);
        readJson = (Button) findViewById(R.id.read_json);
        writeImage = (Button) findViewById(R.id.write_image);
        readImage = (Button) findViewById(R.id.read_image);
        ivImage = (ImageView) findViewById(R.id.iv_image);



        writeJson.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 100);
            }
        });

        readJson.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE},200);
            }
        });

        writeImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 300);
            }
        });

        readImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 400);
            }
        });

    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == 100 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            new JsonAsyncTask(MainActivity.this).execute(url_json);
        }
        if (requestCode == 200 && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
            File file = Environment.getExternalStorageDirectory();
            FileInputStream is = null;
            StringBuffer sb=new StringBuffer();
            try {
                is = new FileInputStream(new File(file,"json.txt"));
                int len = 0;
                byte[] b = new byte[1024];
                while ((len = is.read(b))!=-1){
                    sb.append(new String(b,0,len));
                }
                Toast.makeText(this, "读取成功", Toast.LENGTH_SHORT).show();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        if (requestCode == 300 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            new PicAsyncTask().execute(url_pic);
        }
        if (requestCode == 400 && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
            
            File file=Environment.getExternalStorageDirectory();
            File file1 = new File(file, "image.jpg");

            Bitmap bitmap= BitmapFactory.decodeFile(file1.getAbsolutePath());

            ivImage.setImageBitmap(bitmap);
            Toast.makeText(this, "图片读取成功", Toast.LENGTH_SHORT).show();

        }
    }
}

异步任务请求Json

public class JsonAsyncTask extends AsyncTask<String, Void, String> {

    private Context context;

    public JsonAsyncTask(Context context) {
        this.context = context;
    }

    @Override
    protected String doInBackground(String... strings) {
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        HttpURLConnection connection = null;
        try {
            URL url = new URL(strings[0]);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();
            Log.i("-----", "响应码" + connection.getResponseCode());
            if (connection.getResponseCode() == 200) {
                is = connection.getInputStream();
                baos = new ByteArrayOutputStream();
                int len = 0;
                byte[] b = new byte[1024];
                while ((len = is.read(b)) != -1) {
                    baos.write(b, 0, len);
                }
                Log.i("-----", baos.toString());
                return baos.toString();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            Log.i("-----","进入成功");
            File file = Environment.getExternalStorageDirectory();
            Log.i("-----", file.toString());
            FileOutputStream outputStream = null;
            try {
                outputStream = new FileOutputStream(new File(file, "json.txt"));
                outputStream.write(s.getBytes());
                Toast.makeText(context, "存储成功", Toast.LENGTH_SHORT).show();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

异步任务请求图片

public class PicAsyncTask extends AsyncTask<String,Void, Bitmap> {


    @Override
    protected Bitmap doInBackground(String... strings) {
        InputStream is = null;
        FileOutputStream outputStream = null;
        HttpURLConnection connection = null;
        try {
            URL url = new URL(strings[0]);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();
            File file = Environment.getExternalStorageDirectory();
            Log.i("-----", "响应码" + connection.getResponseCode());
            if (connection.getResponseCode() == 200) {
                is = connection.getInputStream();
                outputStream = new FileOutputStream(new File(file,"image.jpg"));
                int len = 0;
                byte[] b = new byte[1024];
                while ((len = is.read(b)) != -1) {
                    outputStream.write(b,0,len);
                }

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值