Tuesday, February 23, 2010

Android 文件操作 读/写

// 写文件, 再读进来,比较是否相等

package com.flybull.aabb;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class AaBbActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);

try { // catches IOException below
final String TESTSTRING = new String("Hello Android");

// ##### Write a file to the disk #####
/* We have to use the openFileOutput()-method
* the ActivityContext provides, to
* protect your file from others and
* This is done for security-reasons.
* We chose MODE_WORLD_READABLE, because
* we have nothing to hide in our file */
FileOutputStream fOut = openFileOutput("samplefile.txt",
MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);

// Write the string to the file
osw.write(TESTSTRING);
/* ensure that everything is
* really written out and close */
osw.flush();
osw.close();

// ##### Read the file back in #####

/* We have to use the openFileInput()-method
* the ActivityContext provides.
* Again for security reasons with
* openFileInput(...) */
FileInputStream fIn = openFileInput("samplefile.txt");
InputStreamReader isr = new InputStreamReader(fIn);
/* Prepare a char-Array that will
* hold the chars we read back in. */
char[] inputBuffer = new char[TESTSTRING.length()];
// Fill the Buffer with data from the file
isr.read(inputBuffer);
// Transform the chars to a String
String readString = new String(inputBuffer);

// Check if we read back the same chars that we had
written out
boolean isTheSame = TESTSTRING.equals(readString);

// WOHOO lets Celebrate =)
Log.i("File Reading stuff", "success = " + isTheSame);

TextView t = new TextView(this);
t.append("File Reading stuff" + "success = " + isTheSame);

setContentView(t);

} catch (IOException ioe) {
ioe.printStackTrace();
}
}

}

No comments: