packageliudeli.datastorage;importandroid.app.Activity;importandroid.os.Bundle;importandroid.text.TextUtils;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.TextView;importandroid.widget.Toast;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;public class MainActivity3 extends Activity implementsView.OnClickListener {
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
initViewListener();
getFilesDir();//得到当前APP应用files目录
getCacheDir();//得到当前APP应用cache缓存目录
}privateEditText etOutpu;privateTextView tvInput;publicButton btOutput, btInput;private voidinitViewListener() {
etOutpu=findViewById(R.id.et_output);
tvInput=findViewById(R.id.tv_input);
btOutput=findViewById(R.id.bt_output);
btInput=findViewById(R.id.bt_input);
btOutput.setOnClickListener(this);
btInput.setOnClickListener(this);//让TextView获得焦点,TextView就可以滚动了
tvInput.setSelected(true);
}
@Overrideprotected voidonDestroy() {super.onDestroy();
}
@Overridepublic voidonClick(View v) {switch(v.getId()) {caseR.id.bt_input: {//Android提供了操作自身APP文件目录的API openFileInput
try{
File file= new File(getFilesDir().getAbsolutePath() ,"my_open_file_file.txt");if (!file.exists()) {
Toast.makeText(MainActivity3.this, "文件不存在", Toast.LENGTH_LONG).show();return;
}
FileInputStream fileInputStream= openFileInput("my_open_file_file.txt");byte[] bytes = new byte[1024];intlen;while (-1 != (len =fileInputStream.read(bytes))) {
StringBuffer sb= newStringBuffer();
sb.append(new String(bytes, 0,len));
tvInput.setText("" +sb.toString());
}
fileInputStream.close();
}catch(Exception e) {
e.printStackTrace();
}break;
}caseR.id.bt_output: {
String outputStr=etOutpu.getText().toString();if(TextUtils.isEmpty(outputStr)) {
Toast.makeText(MainActivity3.this, "请输入内容!", Toast.LENGTH_SHORT).show();return;
}//Android提供了操作自身APP文件目录的API openFileOutput
try{//MODE_APPEND 私有模式,每次会进行覆盖,是比较安全的模式//MODE_WORLD_READABLE 全局可读模式//MODE_WORLD_WRITEABLE 全局可写模式//MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE 全局可读可写模式
FileOutputStream fos= openFileOutput("my_open_file_file.txt", MODE_PRIVATE);
fos.write(outputStr.getBytes());
fos.close();
}catch(Exception e) {
e.printStackTrace();
}break;
}default:break;
}
}
}