我们能够保存或读取设备内部存储器中的数据。 FileInputStream和FileOutputStream类用于读取和写入数据到文件中。
在这里,我们将读取数据并将数据写入设备的内部存储器。
读写数据到android内部存储器的示例
activity_main.xml从面板上拖出2个edittext,2个textviews和2个按钮,现在activity_main.xml文件将如下所示:
<
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" ><
EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="20dp"
android:layout_marginTop="24dp"
android:ems="10" ><
requestFocus />
<
/EditText><
EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginTop="24dp"
android:ems="10" /><
TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText1"
android:layout_alignBottom="@+id/editText1"
android:layout_alignParentLeft="true"
android:text="File Name:" /><
TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText2"
android:layout_alignBottom="@+id/editText2"
android:layout_alignParentLeft="true"
android:text="Data:" /><
Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText2"
android:layout_below="@+id/editText2"
android:layout_marginLeft="70dp"
android:layout_marginTop="16dp"
android:text="save" /><
Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="read" /><
/RelativeLayout>
活动类【android内部存储示例】让我们编写代码以从内部存储中写入和读取数据。
package example.srcmini.com.internalstorage;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
EditText editTextFileName, editTextData;
Button saveButton, readButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextFileName=findViewById(R.id.editText1);
editTextData=http://www.srcmini.com/findViewById(R.id.editText2);
saveButton=findViewById(R.id.button1);
readButton=findViewById(R.id.button2);
//Performing Action on Read Button
saveButton.setOnClickListener(new View.OnClickListener(){@Override
public void onClick(View arg0) {
String filename=editTextFileName.getText().toString();
String data=editTextData.getText().toString();
FileOutputStream fos;
try {
fos = openFileOutput(filename, Context.MODE_PRIVATE);
//default mode is PRIVATE, can be APPEND etc.
fos.write(data.getBytes());
fos.close();
Toast.makeText(getApplicationContext(), filename +" saved", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {e.printStackTrace();
}
catch (IOException e) {e.printStackTrace();
}}});
//Performing Action on Read Button
readButton.setOnClickListener(new View.OnClickListener(){@Override
public void onClick(View arg0) {
String filename=editTextFileName.getText().toString();
StringBuffer stringBuffer = new StringBuffer();
try {
//Attaching BufferedReader to the FileInputStream by the help of InputStreamReader
BufferedReader inputReader = new BufferedReader(new InputStreamReader(
openFileInput(filename)));
String inputString;
//Reading data line by line and storing it into the stringbuffer
while ((inputString = inputReader.readLine()) != null) {
stringBuffer.append(inputString + "\n");
}} catch (IOException e) {
e.printStackTrace();
}
//Displaying data on the toast
Toast.makeText(getApplicationContext(), stringBuffer.toString(), Toast.LENGTH_LONG).show();
}});
}
}
输出:
文章图片
文章图片
文章图片
文章图片
文章图片
推荐阅读
- android preferences用法示例
- android alarmmanager用法
- android service使用教程
- android弹出菜单的例子
- android显式intent示例
- android上下文菜单示例
- android选项菜单示例
- android的fragment片段
- android共享app数据