您的位置:首页 > 移动开发 > Android开发

Android的读写文件权限

2016-05-19 11:05 375 查看
/**测试没通过
* 写文件
* @param str
*/
public void write(String str){
File file = new File(Environment.getExternalStorageDirectory()+"/cardvalue","config.txt");
FileWriter fw;

try {
if (file.exists()){
file.delete();
file.createNewFile();
}

fw = new FileWriter(file);
fw.write(str);
fw.flush();
fw.close();

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

}

/**
* 读文件
* @return
*/
public String read(){
File file = new File(Environment.getExternalStorageDirectory()+"/cardvalue","config.txt");
FileReader fr ;
if (!file.exists()){
return null ;
}else{
try {
fr = new FileReader(file);
char buffer[] = new char[(int) file.length()];
fr.read(buffer);
String str = new String(buffer);
fr.close();
return str;

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

}


下面是读取文件和写入文件的程序代码:

读取文件:

[java] view plain copy
public void readInfo(View view){
File file = new File("/data/data/com.aaron.login/files/public.txt");
FileInputStream fis;
try {
fis = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String result = br.readLine();
Toast.makeText(MainActivity.this,
result,
Toast.LENGTH_LONG).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(MainActivity.this,
"读取文件失败",
Toast.LENGTH_LONG).show();
}
}

写入文件:

[java] view plain copy
public void writeInfo(View view){
File file = new File("/data/data/com.aaron.login/files/public.txt");
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
fos.write("hahaha".getBytes());
fos.close();
Toast.makeText(MainActivity.this,
"写入文件成功",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(MainActivity.this,
"写入文件失败",
Toast.LENGTH_LONG).show();
}

}

File file = new File("/data/data/com.aaron.login/files/public.txt");

同File file = new File(Context.getFileDir(), "public.txt");

若要存储文件到SD卡:File file = new File("/sdcard/info.txt");
http://blog.csdn.net/ztp800201/article/details/7322110

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

成功案列:

package com.example.readwrite;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.Toast;

public class MainActivity extends Activity {

private final static String PATH = "/sdcard/digu";
private final static String FILENAME = "/notes.txt";
String text1 ="888888888888888888888888888888888";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onWrite("www888888888888888888888888888888888");
readtex();
}

//向sdcard写文件
/**
* 写文件
*/
private void onWrite(String str) {
try {
Log.e("555555555555555", "Start Write");
//1.判断是否存在sdcard
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
//目录
File path = new File(PATH);
//文件
File f = new File(PATH + FILENAME);
if(!path.exists()){
//2.创建目录,可以在应用启动的时候创建
path.mkdirs();
}
if (!f.exists()) {
//3.创建文件
f.createNewFile();
}else if(f.exists()){
f.delete();
f.createNewFile();
}
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(f));
//4.写文件,从EditView获得文本值
osw.write(str);
osw.close();
}
} catch (Exception e) {
Log.d("66666666666666", "file create error");
}

}

public String  readtex(){
//文件
File f = new File(PATH + FILENAME);
FileInputStream is;
try {
is = new FileInputStream(f);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] array = new byte[1024];
int len = -1;
while( (len = is.read(array)) != -1){
bos.write(array,0,len);
bos.close();
is.close();
Toast.makeText(MainActivity.this,"读出来的数据" +bos.toString(), Toast.LENGTH_SHORT).show();
Log.e("读出来的数据", bos.toString());
return bos.toString();
}
} catch (IOException e) {
e.printStackTrace();
}

return  null;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: