主页面按钮设置点击事件
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;
}
}