一、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());
}
});