http://www.blogjava.net/freeman1984/archive/2009/11/08/android-io.html android里面读取文件地方法基本和java中一样,使用流来读取,只是文件的存放有些规定而已。 android程序是有文件目录为:/data/data/<包名>/files/ 例如:final String filename = “data/data/com.iotest/iotest.txt”; 如果有定义错误就会出现错误。 下面是一个简单的例子说明: 首先是我们的layout: main.xml:
<?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”>
<Button android:text=”write text” android:id=”@+id/write”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
>
</Button>
<Button android:text=”read text” android:id=”@+id/read”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
>
</Button>
<EditText android:text=”text to insert into file
..”
android:id=”@+id/EditText01″ android:layout_width=”fill_parent”
android:layout_height=”fill_parent”>
</EditText>
</LinearLayout>最后生成的界面为如下:
然后使我们的activity:
package com.iotest;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.http.util.EncodingUtils;
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;

public class IoTest extends Activity implements OnClickListener
{ 
/** *//** Called when the activity is first created. */
final String filename = “data/data/com.iotest/iotest.txt”;
final String tag=”I/O”;
EditText editText;
Button buttonw;
Button buttonr;
@Override 
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText)findViewById(R.id.EditText01);
buttonr = (Button)findViewById(R.id.read);
buttonw = (Button)findViewById(R.id.write);
buttonr.setOnClickListener(this);
buttonw.setOnClickListener(this);
} 
public void onClick(View v)
{

switch (v.getId())
{
case R.id.read:
readTest();
break;
case R.id.write:
writeTest();
default:
break;
}
}

public void writeTest()
{ 
try
{
File file = new File(filename);
file.createNewFile();
Log.d(tag, “create flie!”);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file));
bufferedOutputStream.write(editText.getText().toString().getBytes());
bufferedOutputStream.close(); 
}catch (Exception e)
{
Log.e(tag, “error in write”);
}
} 
public void readTest()
{

try
{
File file = new File(filename);
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file));
byte[] data = new byte[(int) file.length()];
bufferedInputStream.read(data);
String str = EncodingUtils.getString(data, “utf-8″);
bufferedInputStream.close();
editText.setText(“读取到的数据:”+str); 
} catch (Exception e)
{
// TODO Auto-generated catch block
Log.e(tag, “error in read”);
}
}
}也就是要注意下文件的路径。