示例代码
public class MainActivity extends AppCompatActivity {
EditText info_edt;
Button save_btn, read_btn;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.initView();
}
// 初始化 view组件
public void initView() {
// 输入容器
this.info_edt = findViewById(R.id.info_edt);
// 保存按钮
this.save_btn = findViewById(R.id.save_btn);
// 读取按钮
this.read_btn = findViewById(R.id.read_btn);
// 显示读取内容
this.textView = findViewById(R.id.textView);
}
// 执行操作
@SuppressLint("NonConstantResourceId")
public void operate(View view) throws IOException {
// 判断初始化view是否完成
boolean pass = (info_edt != null) && (save_btn != null) && (read_btn != null) && (textView != null);
if (!pass) {
Toast.makeText(this, "初始化为完成", Toast.LENGTH_SHORT).show();
return;
}
// 外部存储 一般指app外部、手机内存的存储空间
// 外部存储可以避免删除应用时被删去
String path1 = getExternalFilesDir(null).getAbsolutePath() + "/myFile.txt";
// 内部存储 一般指app内存的存储空间
// 删除app之后 存储内容将会消失
String path2 = getFilesDir().getAbsolutePath() + "/file.txt";
Log.i("*******外部存储路径: *******", path1);
Log.i("*******内部存储路径: *******", path2);
int id = view.getId();
switch (id) {
case R.id.save_btn:
File file = new File(path1);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fileOutputStream = new FileOutputStream(path1, true);
String str = info_edt.getText().toString().trim();
if (str.equals("")) {
Toast.makeText(this, "请输入文本", Toast.LENGTH_SHORT).show();
return;
}
fileOutputStream.write(str.getBytes());
Toast.makeText(this, "数据写入成功", Toast.LENGTH_SHORT).show();
break;
case R.id.read_btn:
FileInputStream fileInputStream = new FileInputStream(path1);
byte[] buff = new byte[1024];
int length = 0;
StringBuilder result = new StringBuilder();
while ((length = fileInputStream.read(buff)) != -1) {
result.append(new String(buff, 0, length));
}
textView.setText(result.toString());
Toast.makeText(this, "数据读取成功", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(this, "未知操作,请联系管理员", Toast.LENGTH_SHORT).show();
}
}
}
示例效果
读写权限