數據存儲四

在數據存儲一、二、三中主要了解到了在android項目中把數據保存到SQLite數據庫中。在數據存儲四來了解在android項目中把數據保存到文件中,首先來了解兩個方法:

1、openFileOutput(String name,int mode)name:文件的名稱,不能包含分隔符“/”,如果文件不能保存在,Android會自動創建它。創建的文件保存在/data/data/<package_name>/files目錄下。

2、openFileInput(String name)。

在openFIleOutput方法裏面的保存的模式mode:

.MODE_APPEND   如果文件中已經存在內容,則在內容末尾追加

.MODE_PRIVATE  文件僅能被該程序訪問

.MODE_WORLD_PEADABLE  文件允許被其它應用程序讀

.MODE_WORLD_WRITEABLE  文件應許被其它程序寫

MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE 

下面是一個代碼實例:


MainActivity.java代碼:

package com.cooguo.file.activity;


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


import com.cooguo.file.service.FileService;


import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {
   private Button btnSave = null;
   private Button btnRead = null;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btnSave = (Button)findViewById(R.id.btnSave);
        btnRead = (Button)findViewById(R.id.btnRead);
        
        btnSave.setOnClickListener(listener);
        btnRead.setOnClickListener(listener);
    }
    
    private OnClickListener listener = new OnClickListener(){
@Override
public void onClick(View view) {

FileService service = new FileService();
EditText editTitle = (EditText)findViewById(R.id.fileEditTitle);
EditText editContent = (EditText)findViewById(R.id.fileEditContent);
TextView textResult  = (TextView)findViewById(R.id.textResult);
            switch (view.getId()) {
case R.id.btnSave:
try {
OutputStream outStream = MainActivity.this.openFileOutput(editTitle.getText().toString(),Context.MODE_PRIVATE);

service.save(outStream, editContent.getText().toString());

Toast.makeText(MainActivity.this, "保存成功!", Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
}
break;


case R.id.btnRead:
try {
InputStream inputStream = MainActivity.this.openFileInput(editTitle.getText().toString());
String content = service.read(inputStream);
textResult.setText(content);
} catch (IOException e) {
e.printStackTrace();
}

break;
}
}
   
    };
}

FileService.java代碼:

package com.cooguo.file.service;


import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


public class FileService {


/**
* 保存
* @param outStream
* @param content
* @throws IOException
*/
public void save(OutputStream outStream ,String content) throws IOException{
outStream.write(content.getBytes());
outStream.close();
}

public String read(InputStream inputStream) throws IOException{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[]   buffer = new byte[1024];
int len = 0;
while ((len=inputStream.read(buffer))!=-1) {
outputStream.write(buffer, 0, len);
}
byte[] data = outputStream.toByteArray();
outputStream.close();
inputStream.close();
return new String(data);
}

}


main.xml配置文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
 <TextView  
    android:id="@+id/fileTitle"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/fileEditTitle"
    android:text="文件名:"
    />
    
    <EditText 
      android:id="@+id/fileEditTitle"
       android:layout_width="250dp" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/fileTitle"
      android:text="kaifa.txt"
    />
    
    <TextView  
    android:id="@+id/fileContent"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/fileEditContent"
    android:text="內容:"
    />
    <EditText 
    android:layout_width="250dp" 
    android:layout_height="250dp" 
    android:id="@+id/fileEditContent" 
    android:layout_below="@+id/fileEditTitle" 
    android:layout_alignLeft="@+id/fileEditTitle">
        
    </EditText>
    
     <Button 
       android:id="@+id/btnSave" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"
       android:text="保存" 
       android:layout_below="@+id/fileEditContent"
       android:layout_toRightOf="@+id/fileTitle"
     />
     
    <Button 
       android:id="@+id/btnRead"
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"
       android:text="讀取" 
       android:layout_below="@+id/fileEditContent" 
       android:layout_toRightOf="@+id/btnSave" 
       android:layout_marginLeft="14dp"
      />
    <TextView 
    android:text="顯示內容" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/textResult" 
    android:layout_below="@+id/btnRead" 
    android:layout_alignRight="@+id/btnRead" 
    android:layout_marginTop="14dp"/>
    
</RelativeLayout>


用心體會,學以致用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章