您好,登錄后才能下訂單哦!
在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:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="我是text1"/> <Button android:id="@+id/btn_write" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="write"/> <TextView android:id="@+id/text2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="我是text2"/> <Button android:id="@+id/btn_read" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="read"/> </LinearLayout>
運行結果如下: 點擊write將第一個TextView寫入文件,點擊read將數據讀出到第二個TextView
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。