package operate.File; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import android.content.Context; public class FileService { Context context; public FileService(Context context){ this.context=context; } public void FileSave(String filename,String content) throws IOException{ FileOutputStream fos=context.openFileOutput(filename, Context.MODE_PRIVATE); fos.write(content.getBytes()); fos.close(); } public String FileRead(String filename) throws IOException{ FileInputStream fin=context.openFileInput(filename); byte[] b=new byte[fin.available()]; ByteArrayOutputStream buffer=new ByteArrayOutputStream(); while((fin.read(b))!=-1){ buffer.write(b); } byte[] data; data=buffer.toByteArray(); buffer.close(); fin.close(); return new String(data); } }
Activity代碼java
package operate.File; import java.io.File; import java.io.IOException; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class OpfActivity extends Activity implements OnClickListener{ /** Called when the activity is first created. */ Button button,rbutton,dbutton; EditText filename,content; FileService service; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Init(); } public void Init(){ button=(Button)findViewById(R.id.button); rbutton=(Button)findViewById(R.id.rbutton); dbutton=(Button)findViewById(R.id.dbutton); filename=(EditText)findViewById(R.id.filename); content=(EditText)findViewById(R.id.content); service=new FileService(this); button.setOnClickListener(this); rbutton.setOnClickListener(this); dbutton.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub if(v==button){ try { service.FileSave(filename.getText().toString(), content.getText().toString()); Toast.makeText(OpfActivity.this, R.string.success, 1).show(); } catch (IOException e) { // TODO Auto-generated catch block Toast.makeText(OpfActivity.this, R.string.failure, 1).show(); Log.i("錯誤提示", e.toString()); } } if(v==rbutton){ try { Toast.makeText(OpfActivity.this, service.FileRead(filename.getText().toString()), 1).show(); } catch (IOException e) { // TODO Auto-generated catch block Toast.makeText(OpfActivity.this, R.string.notfind, 1).show(); } } if(v==dbutton){ File f=new File(getFilesDir(), filename.getText().toString()); if(f.exists()){ Toast.makeText(OpfActivity.this, "刪除成功", 1).show(); f.delete(); } } } }
佈局文件android
<?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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/filename" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/filename" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/content" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/content" android:minLines="3" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:id="@+id/button"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/rbutton" android:id="@+id/rbutton"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/delete" android:id="@+id/dbutton"/> </LinearLayout>
string XMLweb
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, OpfActivity!</string> <string name="app_name">Opf</string> <string name="filename">輸入文件名稱</string> <string name="content">輸入文件內容</string> <string name="button">保存</string> <string name="rbutton">讀取</string> <string name="success">文件保存成功</string> <string name="failure">文件保存失敗</string> <string name="notfind">不存在該文件</string> <string name="delete">刪除文件</string> </resources>
openFileOutput(「a.txt」,Context.MODE_WORLD_READABLE)方法第一個參數是文件名,若不存在這個文件,則自動建立,第二個參數是操做模式共四種:app
Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2ide
Context.MODE_PRIVATE:爲默認操做模式,表明該文件是私有數據,只能被應用自己訪問,在該模式下,寫入的內容會覆蓋原文件的內容,若是想把新寫入的內容追加到原文件中。能夠使用Context.MODE_APPEND
Context.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,不然就建立新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其餘應用是否有權限讀寫該文件。
MODE_WORLD_READABLE:表示當前文件能夠被其餘應用讀取;MODE_WORLD_WRITEABLE:表示當前文件能夠被其餘應用寫入。
若是但願文件被其餘應用讀和寫,能夠傳入:
openFileOutput(「itcast.txt」, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);佈局