Android数据存取之file (文件存取操作)
Android数据存取之file (文件存取操作)
总体按照MVC设计模式
1、javabean (M)
package com.lybeen.Android;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FileService {
/**
* 把数据写入文件中
* @param outputStream
* @param content
* @throws IOException
*/
public static void save(OutputStream outputStream , String content) throws IOException{
outputStream.write(content.getBytes());
outputStream.close();
}
/**
* 从文件中读取数据
* @param inputStream
* @return
* @throws IOException
*/
public static String read(InputStream inputStream) throws IOException{
int len=-1;
byte[] b = new byte[1024];
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
while( ( len = inputStream.read(b) ) != -1){
arrayOutputStream.write(b, 0, len);
};
// return arrayOutputStream.toByteArray().toString();
return new String(arrayOutputStream.toByteArray());
}
}
2.界面设计 (V)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/filename"
android:id="@+id/filenameLabel"
android:textSize="20px"
android:paddingTop="10px"
/>
<EditText
android:layout_width="200px"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/filenameLabel"
android:layout_alignTop="@id/filenameLabel"
android:layout_marginLeft="10px"
android:text="lybeen.txt"
android:id="@+id/filename"
/>
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/content"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="6"
android:maxLines="10"
android:id="@+id/content"
/>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:layout_width="80px"
android:layout_height="wrap_content"
android:text="@string/save"
android:id="@+id/save"
/>
<Button
android:layout_width="80px"
android:layout_height="wrap_content"
android:text="@string/read"
android:layout_toRightOf="@id/save"
android:id="@+id/read"
/>
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/readContent"
/>
</LinearLayout>
3.Activity (C)
package com.lybeen.android;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class FileSaveReadActivity extends Activity {
private EditText filenameText;
private EditText contentText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
filenameText = (EditText) this.findViewById(R.id.filename);
contentText = (EditText) this.findViewById(R.id.content);
Button saveButton = (Button) this.findViewById(R.id.save);
Button readButton = (Button) this.findViewById(R.id.read);
/*saveButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
String content = contentText.getText().toString();
String filename = filenameText.getText().toString();
String sendResult = "发送成功!";
OutputStream outputStream;
try {
outputStream = FileSaveReadActivity.this.openFileOutput(filename, MODE_APPEND);
FileService.save(outputStream, content);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
sendResult = "发送失败";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
sendResult = "发送失败";
}
Toast.makeText(FileSaveReadActivity.this, sendResult, Toast.LENGTH_LONG).show();
}
});*/
saveButton.setOnClickListener(onClickListener);
readButton.setOnClickListener(onClickListener);
}
private View.OnClickListener onClickListener = new View.OnClickListener(){
@Override
public void onClick(View v) {
Button button = (Button) v;
String filename = filenameText.getText().toString();
switch (button.getId()) {
case R.id.save:
String sendResult = "保存成功!";
String content = contentText.getText().toString();
OutputStream outputStream;
try {
outputStream = FileSaveReadActivity.this.openFileOutput(filename, MODE_APPEND);
FileService.save(outputStream, content);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
sendResult = "保存失败";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
sendResult = "保存失败";
}
Toast.makeText(FileSaveReadActivity.this, sendResult, Toast.LENGTH_LONG).show();
break;
case R.id.read:
try {
InputStream inputStream = FileSaveReadActivity.this.openFileInput(filename);
String contentShow = FileService.read(inputStream);
TextView contentShowLabel = (TextView) FileSaveReadActivity.this.findViewById(R.id.readContent);
contentShowLabel.setText(contentShow);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(FileSaveReadActivity.this, "读取失败", Toast.LENGTH_LONG).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(FileSaveReadActivity.this, "读取失败", Toast.LENGTH_LONG).show();
}
break;
}
}
};
}
评论暂时关闭