知识:
Content类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件夹中。这个方法接受两个参数,第一个是文件名,文件默认存储到/data/data/package name/files目录中。第二个是文件的操作模式,主要有MODE_PTIVATE和MODE_APPEND。
示例:
1、在android studio 中创建一个FileStorageTest项目。
2、创建完成后修改activity_main.xml中的代码。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/edtData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="输入要保存的数据"/>
<Button
android:id="@+id/btnWriteToApp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="写入到内部文件"/>
</LinearLayout>
3、MainActivity中的代码。
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText edtData;
private Button btnWriteToApp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件对象
edtData =(EditText)findViewById(R.id.edtData);
btnWriteToApp = (Button)findViewById(R.id.btnWriteToApp);
btnWriteToApp.setOnClickListener(this);
}
public void onClick(View view){
switch (view.getId()){
case R.id.btnWriteToApp:
writeToApp(edtData.getText().toString());
break;
}
}
public void writeToApp(String data){
FileOutputStream out = null;
try {
out = openFileOutput("myFile",MODE_PRIVATE);
out.write(data.getBytes());
out.flush();// 清理缓冲区的数据流
out.close();// 关闭输出流
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在onCreate()方法中获取EditText和Button的实例,为Button添加一个监听事件。在onClick方法中获取EditText输入的内容,用writeToApp()方法把输入的内容保存到内部文件中,命名为“myFile”。
weiteToApp()方法,传入data(字符串)用openFileOutput(“文件名”,操作模式)方法获取一个对象“out”,使用out中的write()方法在文件中写入输入的内容保存,最后清理缓冲区的数据流并且关闭输出流。
4、运行点击按钮
5、是否保存成功可以借助Device File Explorer查看。进入到data/data/package name/files/目录下,可以看到生成了myFile文件将其保存到桌面用记事本打开则看到输入的内容。