Android文件操作
16lz
2022-04-18
界面截图
布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/labelFileName" /> <EditText android:id="@+id/fileName" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/labelFileContext" /> <EditText android:id="@+id/fileContext" android:layout_width="fill_parent" android:layout_height="wrap_content" android:lines="3" /> <Button android:id="@+id/saveBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/saveBtn" /></LinearLayout>
string文件
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">文件保存</string> <string name="labelFileName">文件名称</string> <string name="labelFileContext">文件内容</string> <string name="saveBtn">保存文件</string> <string name="success">文件保存完成</string> <string name="fail">文件保存失败</string></resources>
Activity类
package com.webyun.app;import com.webyun.app.service.FileService;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class AndroidFileOpeActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //根据ID查找文件保存按钮 Button saveFileBtn = (Button)this.findViewById(R.id.saveBtn); //为文件保存按钮设置点击事件 saveFileBtn.setOnClickListener(new ButtonClickListener()); } private final class ButtonClickListener implements View.OnClickListener{@Overridepublic void onClick(View v) {//根据ID查找文件名输入框控件EditText fileName = (EditText)findViewById(R.id.fileName);//根据ID查找文件内容输入框控件EditText fileContext = (EditText)findViewById(R.id.fileContext);//获取用户输入的文件名String fileNameStr = fileName.getText().toString();//获取用户输入的文件内容String fileContextStr = fileContext.getText().toString();//调用业务类的文件保存方法,保存文件FileService fileService = new FileService(getApplicationContext());try {fileService.save(fileNameStr, fileContextStr);//提示文件保存成功Toast.makeText(getApplicationContext(), R.string.success, Toast.LENGTH_LONG).show();} catch (Exception e) {//提示文件保存失败Toast.makeText(getApplicationContext(), R.string.fail, Toast.LENGTH_LONG).show();e.printStackTrace();}} }}
业务类FileService
package com.webyun.app.service;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import android.content.Context;public class FileService {/** * 应用上下文对象 */private Context context;public FileService(Context context) {this.context = context;}/** * 保存文件,文件将默认保存在:/data/data/应用所在包/files/ * @param fileNameStr文件名称 * @param fileContextStr文件内容 */public void save(String fileNameStr, String fileContextStr) throws Exception {/** * 私有操作模式: * 创建出来的文件只能被本应用访问,其他应用无法访问该文件。 * 另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容。 */FileOutputStream outputStream = this.context.openFileOutput(fileNameStr, Context.MODE_PRIVATE);outputStream.write(fileContextStr.getBytes());outputStream.close();}/** * 读取文件内容 * @param fileName文件名称 * @return文件内容 * @throws Exception */public String read(String fileName) throws Exception {//默认从:/data/data/应用所在包/files/下读取文件FileInputStream inputStream = this.context.openFileInput(fileName);ByteArrayOutputStream outputStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while((len = inputStream.read(buffer)) != -1){//将数据写入到内存输出流中outputStream.write(buffer, 0, len);}byte[] data = outputStream.toByteArray();return new String(data);}}
更多相关文章
- 安卓各文件存储路径汇总(Android(安卓)file path)
- android studio 3.6.1导入项目报错(无法下载classpath里的内容)
- android studio 遇到的问题汇总
- android过滤隐藏文件FileFilter
- Android(安卓)用ScrollView和HorizontalScrollView同时实现上下
- 【Android】Zip文件解压方法
- 49 Android(安卓)fragment 自定义适配器adapter
- Android(安卓)- 购物车页面【仿】淘宝App
- NPM 和webpack 的基础使用