Android中数据存储方式一:文件形式
总结在Android中,一共有数据存储的5种方式。今天做一个笔记的整理。关于以文件形式如何来保存数据。
1.在activity_main.xml设计好布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:id="@+id/textName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="文件名称"/> <EditText android:id="@+id/inputName" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/fileContextName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="文件内容"/> <EditText android:id="@+id/inputContext" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLines="5" /> <Button android:id="@+id/fileSaveBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保存"/> </LinearLayout>
2.在MainActivity.class获取用户输入的文件名和文件信息,保存文件。
public class MainActivity extends Activity { private Button saveBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); saveBtn = (Button)findViewById(R.id.fileSaveBtn); saveBtn.setOnClickListener(new saveFileListener()); } }
/** * 如果这个类不需要被继承,加个final关键字来终结它。 */ private final class saveFileListener implements OnClickListener{ @Override public void onClick(View v) { EditText fileNameText = (EditText)findViewById(R.id.inputName); EditText fileContentText = (EditText)findViewById(R.id.inputContext); String fileName = fileNameText.getText().toString(); String fileContent = fileContentText.getText().toString(); FileService fileService = new FileService(getApplicationContext()); try { //保存到手机的内存上 fileService.saveFilePrivate(fileName,fileContent); <span style="white-space:pre"> </span>} catch (Throwable e) { <span style="white-space:pre"> </span>Toast.makeText(MainActivity.this, R.string.fail, Toast.LENGTH_LONG).show(); <span style="white-space:pre"> </span>e.printStackTrace(); }
} }
3.在业务层,FileSerivice处理如何保存文件内容。
public class FileService { private Context context; //生成构造器 public FileService(Context context){ this.context = context; } /** * 保存文件信息 * @param fileName 文件名 * @param fileContent 文件内容 * @throws Throwable */ public void saveFilePrivate(String fileName,String fileContent) throws Exception{ //采用输出流对象,输出我们所需要的数据。 //指出需要导出的位置openFileOutput("只接受文件名称,不接受文件路径", //"用于指定文件的操作模式,行为【追加方式】,【覆盖形式】" //文件有一个访问权限的控制,针对拥有者,针对其他用户的访问权限 //私有操作模式:创建出来文件的只能被本应用访问,其他应用无法访问该文件。 // 其次私有模式创建出来的文件会覆盖原有的文件内容。 // 默认保存在,当前应用包所在的下的files文件夹下。 FileOutputStream outputStream = context.openFileOutput("lmfcast.txt",Context.MODE_PRIVATE); //追加方式 //FileOutputStream outputStream = context.openFileOutput("lmfcast.txt",Context.MODE_APPEND); write(fileContent, outputStream); } private void write(String fileContent, FileOutputStream outputStream) throws IOException { outputStream.write(fileContent.getBytes()); outputStream.close(); } }
4.源码运行截图:
学习总结:
1.文件保存方式,是采用java的IO流技术。
2.文件的访问模式,分为private和append。
3.文件操作行为分为:private,apend,read,write,read+write。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。