|
File(File dir, String name):构造一个新文件对象,且文件对象包含指定的路径和文件名
|
File file = ...
InputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(file));
...
finally {
if (in != null) {
in.close();
}
}
}
|
FileInputStream(File file)
Constructs a new FileInputStream that reads from file.
|
|
Constructs a new
FileInputStream that
reads from fd. |
|
Equivalent to
new
FileInputStream(new File(path)). |
File file = ...
OutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(file));
...
finally {
if (out != null) {
out.close();
}
}
}
|
FileOutputStream(File file) :构造一个 FileOutputStream 实例,用于写字节数据到File对象对应的文件
|
package com.example.android_sdcard_0;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class FileTest extends Activity {
final String FILE_NAME="test.txt";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//0.获取界面组件
Button write=(Button)findViewById(R.id.writeBtn);
Button read=(Button)findViewById(R.id.readBtn);
final EditText edit1=(EditText)findViewById(R.id.edit1);
final EditText edit2=(EditText)findViewById(R.id.edit2);
//1.为按钮设置监听器并实现相应功能(写、读)
write.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
write(edit2.getText().toString()); //获取文本编辑框中的数据并写入到文件中
edit2.setText(""); //清空文本编辑框
}
});
read.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
edit1.setText(read()); //读取指定文件中的内容并显示出来
}
});
}
//2.实现read()方法:从指定文件中读取数据
private String read(){
try {
FileInputStream fis=openFileInput(FILE_NAME);//a.打开文件输入流
byte[] buff=new byte[1024]; //b.开辟一段缓冲空间
int hasRead=0; //c.读取位置标志位
StringBuilder sb=new StringBuilder(""); //d.实例化一个StringBuilder对象
while( (hasRead=fis.read(buff)) >0 ) //将文件数据读到buff数组中并返回字节数,等价于 read(buffer, 0, buffer.length).
{
sb.append(new String(buff,0,hasRead)); //从buff缓冲中读取从0位置开始hasRead个字节数的内容存放到StringBuilder对象中
}
fis.close();
return sb.toString(); //返回读取到的数据
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
//3.将文本编辑框中的数据追加写入到指定文件中
private void write(String content) {
try {
FileOutputStream fos=openFileOutput(FILE_NAME,MODE_APPEND); //以追加模式打开指定文件(输出流)
PrintStream ps=new PrintStream(fos); //将FileOutputStream包装成PrintStream
ps.append(content); //将传递进来的数据参数写入指定文件中
ps.close(); //关闭文件
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Android学习笔记十七.Android数据存储与IO.File存储常用API
原文:http://blog.csdn.net/u012637501/article/details/42502355