關於openFileOutput及文件存儲,刪除,讀取簡單用法

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 =  2
ide

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);
佈局

相關文章
相關標籤/搜索