一、File 内部存储:
1、存储信息的函数:
//存储信息
private void save(String content){
FileOutputStream fileOutputStream=null;
try {
fileOutputStream=openFileOutput(mFileName, MODE_PRIVATE);
fileOutputStream.write(content.getBytes());
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
assert fileOutputStream != null;
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、读取信息的函数:
//读取信息
private String read(){
FileInputStream fileInputStream=null;
try {
fileInputStream=openFileInput(mFileName);
byte[] buff=new byte[1024];
StringBuilder sb=new StringBuilder();
int len=0;
while ((len=fileInputStream.read(buff)) >0 ){
sb.append(new String(buff,0, len));
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (fileInputStream != null) {
fileInputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
3、在 button 按钮监听事件中调用:
//存储
mBtnFileSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
save(mEtFileName.getText().toString());
}
});
//读取
mBtnFileShow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTvFileContent.setText(read());
}
});
二、File外部存储:
1、先在 AndroidManifest.xml 文件中添加访问权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2、在 app 首页界面对应的 Activity 中的 onCreate 方法中添加:
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
3、在本页面 Activity 中添加存储信息的函数:
//存储信息
private void save(String content){
FileOutputStream fileOutputStream=null;
try {
//创建文件夹
File dir=new File(Environment.getExternalStorageDirectory(), "FILE");
if (!dir.exists()){
dir.mkdirs();
}
//创建文件
File file=new File(dir, mFileName);
if (!file.exists() ){
file.createNewFile();
}
fileOutputStream=new FileOutputStream(file);
fileOutputStream.write(content.getBytes());
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
assert fileOutputStream != null;
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
4、添加读取信息的函数:
//读取信息
private String read(){
FileInputStream fileInputStream=null;
try {
File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator + "FILE",mFileName);
fileInputStream = new FileInputStream(file);
byte[] buff=new byte[1024];
StringBuilder sb=new StringBuilder();
int len=0;
while ((len=fileInputStream.read(buff)) >0 ){
sb.append(new String(buff,0, len));
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (fileInputStream != null) {
fileInputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
5、在 onCreate 函数中调用以上两个方法:
//存储
mBtnFileSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
save(mEtFileName.getText().toString());
}
});
//读取
mBtnFileShow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTvFileContent.setText(read());
}
});