Android通过一套完整的I/O流体系,包括FileInputStream、FileOutputStream等,通过这些I/O流来访问手机存储上的文件。
转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空)
File(File dir, String name):构造一个新文件对象,且文件对象包含指定的路径和文件名
|
File( String
path):构造一个新文件对象,
且文件对象包含指定的路径
|
File( String
dirPath,
String
name):
构造一个新文件对象,且文件对象使用指定的目录路径和文件名
|
File( URI
uri):
构造一个新文件对象,且文件对象使用指定的URI路径
|
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.
|
FileInputStream( FileDescriptor
fd)
Constructs a new
FileInputStream
that reads from
fd .
|
FileInputStream( String
path)
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对象对应的文件
|
FileOutputStream( File
file, boolean append)
|
FileOutputStream( FileDescriptor
fd):构造一个 FileOutputStream 实例,用于写字节数据到文件描述符对应的文件
|
FileOutputStream( String
path)
|
FileOutputStream( String
path, boolean append)
|
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(); } } }