在Android中,我们可以将一些数据直接以文件的形式保存在设备中。例如:一些文本文件、PDF文件、音视频文件和图片等。Android  提供了文件读写的方法。

    通过 Context.openFileInput()方法获得标准Java文件输入流(FileInputStream),通过Context.openFileOutput()方法获得标准Java文件输出流( FileOutputStream )。使用

Resources.openRawResource(R.raw.myDataFile)方法返回InputStream。

示例如下,新建一个Activity,添加两个TextView和两个Button,点击第一个Button,将TextView上的数据写到文件中,点击第二个Button,将文件中的数据写到TextView中。

MainActivity.java:

public class MainActivity extends Activity {    private String filename = "file.txt";    private TextView mytext1,mytext2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mytext1=(TextView)this.findViewById(R.id.text1);        mytext2=(TextView)this.findViewById(R.id.text2);        Button button1=(Button)this.findViewById(R.id.btn_read);        Button button2=(Button)this.findViewById(R.id.btn_write);        button1.setOnClickListener(new OnClickListener(){            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                mytext2.setText(read());            }        });        button2.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                write(mytext1.getText().toString());            }        });    }    protected String read(){        try {            FileInputStream fis = openFileInput(filename);            try {                byte[] buffer = new byte[fis.available()];                fis.read(buffer);                return new String(buffer);            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return null;    }    protected void write(String str) {        try {            FileOutputStream fos = openFileOutput(filename,MODE_APPEND);            try {                fos.write(str.getBytes());                fos.close();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

activity_main.xml:

        
    
    
    
    

运行结果如下:        点击write将第一个TextView写入文件,点击read将数据读出到第二个TextView

                    wKiom1T9pIajsG7cAADJWMCyuJo675.jpg                                        wKioL1T9pavjCvM6AADC0C0wbRA526.jpg