Android 文件IO流的存储和读取
程序员文章站
2022-07-14 20:54:45
...
一、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());
}
});
上一篇: Java泛型探索
下一篇: android内存泄漏记录
推荐阅读
-
Android开发实现读取Assets下文件及文件写入存储卡的方法
-
android从资源文件中读取文件流并显示的方法
-
Pandas读取和存储含有中文的csv文件
-
Android 文件IO流的存储和读取
-
android从资源文件中读取文件流并显示的方法
-
Python读取和存储yaml文件的方法
-
Android 打开系统文件管理器兼容android8,9,10和读取第三方文件管理的文件(微信文件管理)
-
C++ 存储和读取二进制文件以及类的实例
-
java——序列化的反序列化 和 IO 流 和 单例模式下将信息存储到properties文件中
-
利用File类和IO流将一个文件夹的所有内容拷贝到另一个文件夹下