数据存储四

来源:互联网 发布:mysql 存储过程 语法 编辑:程序博客网 时间:2024/06/14 23:54

在数据存储一、二、三中主要了解到了在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>


用心体会,学以致用。

原创粉丝点击