Android内部存储文件之数据读取
1:Android开发中,离不开对文件的操作,因为文件可以存储大量数据,掌握相关技术可以为开发带来许多便利,一下便是我们的应用在手机或者模拟器上的内部存储位置。
2:通过一个简单的程序实现对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(); } } }); } }