File 存储 FileOutputStream和FileInputStream的使用

Context提供如下两种方法来打开应用程序的数据文件夹里的文件IO流。

1.FileOutputStream openFileOutput(String name,int mode)::打开应用程序的数据文件夹下的name文件对应输出流;

2.FileInputStream openFileInput(String name)::打开应用程序的数据文件夹下name文件对应输出流。


int mode 制定打开文件的模式:

a.MODE_PRIVATE:该文件只能被当前程读写;

b.MODE_APPEND:以追加方式打开文件,应用可以向该文件追加内容;

c.MODE_WORLD_READABLE:该文件内容可被其他应用读取;

d.MODE_WORLD_WRITEABLE:该文件的内容可由其他程序读写;

在访问应用程序的数据文件夹中,context还提供如下方法来访问

a.getDir(String name,int mode):在应用程序的数据文件夹下获取或者创建name对应的子目录;

b. File getFilesDir():获取该应用程序的数据文件夹的绝对路径;

c. String[] fileList():返回该应用程序的数据文件夹下的全部文件;

d.deleteFile(String):删除该应用程序的数据文件夹下的指定文件。


本程序示范如何读写程序数据文件夹下的文件,布局中包括两个按钮,一个是写入,一个写出。还有两个输入文本框,在editText1中写出数据,按下写入后,点击读取,写入的信息就会在editText2上显示。

package com.example.filedemo;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;


import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.app.Activity;


public class MainActivity extends Activity {
private static final String FILE_NAME = "sky_brian";


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println(new StringBuilder("a").append("b").append("c")
.toString());
// 获取两个按钮
Button write = (Button) findViewById(R.id.write);
Button read = (Button) findViewById(R.id.read);
// 获取两个输入框
final EditText editText1 = (EditText) findViewById(R.id.editText1);
final EditText editText2 = (EditText) findViewById(R.id.editText2);
// 为write 按钮绑定监听器
write.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 将editText1中的内容写入文件中
write(editText1.getText().toString());
editText1.setText("");
}
});


read.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 读取制定文件中的内容,并显示出来
editText2.setText(read());
}
});
}



//读取文件
private String read(){

try {
//打开文件输入流
FileInputStream fis = openFileInput(FILE_NAME);
byte[] buff = new byte[1024];
int hasRead = 0;
StringBuilder sb = new StringBuilder("");
while((hasRead = fis.read(buff))>0){
sb.append(new String(buff,0,hasRead));
}
return sb.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return null;
}

private void write(String content){
try {
//以追加的模式打开文件输出流
FileOutputStream fos = openFileOutput(FILE_NAME ,MODE_APPEND);
//将FileOutputStream包装成printStream
PrintStream ps = new PrintStream(fos);
//输出文件内容
ps.println(content);
ps.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


希望我的博客能对你有用,写博客的用意是自己做一个记录和自己的知识能在某个时候帮到大家。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值