内部及外部SD卡存储空间存储
来源:互联网 发布:知乎 亦庄锋创科技园 编辑:程序博客网 时间:2024/05/16 10:32
package com.zdsoft.file1206;import android.content.Context;import android.os.Environment;import android.os.StatFs;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText et_name, et_content; private Button bt_write, bt_read, bt_write_sd, bt_read_sd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); listener(); } private void initView() { et_name = (EditText) findViewById(R.id.et_name); et_content = (EditText) findViewById(R.id.et_content); bt_write = (Button) findViewById(R.id.bt_write); bt_read = (Button) findViewById(R.id.bt_read); bt_write_sd = (Button) findViewById(R.id.bt_write_sd); bt_read_sd = (Button) findViewById(R.id.bt_read_sd); } private void listener() { bt_write.setOnClickListener(this); bt_read.setOnClickListener(this); bt_write_sd.setOnClickListener(this); bt_read_sd.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_write: write(); break; case R.id.bt_read: read(); break; case R.id.bt_write_sd: writeSD(); break; case R.id.bt_read_sd: readSD(); break; default: break; } } private void write() { try { FileOutputStream fos = openFileOutput(et_name.getText().toString(), Context.MODE_APPEND); fos.write(et_content.getText().toString().getBytes()); fos.close(); Toast.makeText(MainActivity.this, "写入成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); } } private void read() { try { FileInputStream fis = openFileInput(et_name.getText().toString()); byte[] b = new byte[1024]; int num = 0; StringBuffer sb = new StringBuffer(); while ((num = fis.read(b)) != -1) { sb.append(new String(b, 0, num)); } Toast.makeText(MainActivity.this, sb.toString(), Toast.LENGTH_SHORT).show(); fis.close(); } catch (Exception e) { e.printStackTrace(); } } private void writeSD() { try {// if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// Toast.makeText(MainActivity.this, "内存卡不存在", Toast.LENGTH_SHORT).show();// return;// } File file = new File(Environment.getExternalStorageDirectory() + "/" + et_name.getText().toString()); FileOutputStream fos = new FileOutputStream(file); fos.write(et_content.getText().toString().getBytes()); fos.close(); Toast.makeText(MainActivity.this, "写入成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); } } private void readSD() { try { File file = new File(Environment.getExternalStorageDirectory() + "/" + et_name.getText().toString()); FileInputStream fis = new FileInputStream(file); byte[] b = new byte[1024]; int num = 0; StringBuffer sb = new StringBuffer(); while ((num = fis.read(b)) != -1) { sb.append(new String(b, 0, num)); } Toast.makeText(MainActivity.this, sb.toString(), Toast.LENGTH_SHORT).show(); fis.close(); } catch (Exception e) { e.printStackTrace(); } }}<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
加SD卡权限
1 0
- 内部及外部SD卡存储空间存储
- 内部存储空间 手机存储空间 sd卡
- 将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- android 存储 内部存储 外部存储 SD卡
- android 6.0sd卡内部存储 & 外部存储
- Android 漫游之路------将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- Android 获取内存、内部存储、外部存储空间大小
- Android 获取内存、内部存储、外部存储空间大小
- Android 获取内存、内部存储、外部存储空间大小
- Android 获取内存、内部存储、外部存储空间大小
- 数据存储详解(二)---->File存储:内部存储 -Cache和外部存储-SD卡
- Android获取SD卡及内部存储空间总大小和可用大小
- 获取手机及SD卡可用存储空间
- android获取内部外部存储空间
- Android_获取sd卡空间、手机内部存储空间
- Android Environment.getExternalStorageDirectory() 获取的是内部存储还是外部存储?若无SD卡,就用内部。
- Android外部sd卡存储
- Android存储空间——外部存储空间和内部存储空间
- VS2010 调试C++项目 fatal error LNK1123 错误解决办法
- Material Design中 FAB (Floating Action Button) 的使用
- Fragment的回退栈
- [java]java中的 == 号判断,为什么基本数据类型就是比较内容,而对象则是比较地址?
- Android学习笔记4--XmlPullParser的使用
- 内部及外部SD卡存储空间存储
- select列表左右选择框
- Python面试必备金典,还说你会python?
- QT 设计
- Qt提供的qSort函数各种顺序
- MySQL数据库使用注意事项
- 深入分析MySQL的逻辑架构
- IDEA 常用快捷键
- 使用yum时报错