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。





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。