你的位置:首页 > 操作系统

[操作系统]Android内部存储文件之数据读取


1:Android开发中,离不开对文件的操作,因为文件可以存储大量数据,掌握相关技术可以为开发带来许多便利,一下便是我们的应用在手机或者模拟器上的内部存储位置。

 

 

3:示例代码如下:

package cativity.cyq.readwriteintemaldata;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;public class MainActivity extends ActionBarActivity {  private final String FILE_NAME = "text.txt";  private Button writrBTN;  private Button readBTN;  private EditText writeEdit;  private TextView showTEXT;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    // final File fileName=new File(FILE_NAME);    writrBTN = (Button) findViewById(R.id.write_btn);    readBTN = (Button) findViewById(R.id.read_btn);    writeEdit = (EditText) findViewById(R.id.write_edit);    showTEXT = (TextView) findViewById(R.id.show_text);    writrBTN.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        try {          /*调用openFileOutput()方法,如果文件存在则只用该文件,不存在,则创建该文件。          MODE_APPEND表示在文本的末尾追加数据,不覆盖原有的数据*          Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容          Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。          MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;          MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。*/          FileOutputStream fos = openFileOutput(FILE_NAME, MODE_APPEND);          OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");          osw.write(writeEdit.getText().toString());          //osw.write("hello Wrold !");          osw.flush();          fos.flush();          osw.close();          fos.close();          Toast.makeText(MainActivity.this, "写入成功", Toast.LENGTH_SHORT).show();        } catch (FileNotFoundException e) {          e.printStackTrace();        } catch (UnsupportedEncodingException e) {          e.printStackTrace();        } catch (IOException e) {          e.printStackTrace();        }      }    });    readBTN.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        try {          FileInputStream fps = openFileInput(FILE_NAME);          InputStreamReader isr = new InputStreamReader(fps, "UTF-8");          BufferedReader br = new BufferedReader(isr);          StringBuilder sBuilder = new StringBuilder();          String line = "";          while ((line = br.readLine()) != null) {            sBuilder.append(line);          }          showTEXT.setText(sBuilder.toString());          Toast.makeText(MainActivity.this, "读取成功", Toast.LENGTH_SHORT).show();        } catch (FileNotFoundException e) {          e.printStackTrace();        } catch (UnsupportedEncodingException e) {          e.printStackTrace();        } catch (IOException e) {          e.printStackTrace();        }      }    });  }}