Android的读写文件权限

	/**测试没通过
	 * 写文件
	 * @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;	
	}


}

    原文作者:aicpzl
    原文地址: https://blog.csdn.net/aicpzl/article/details/51451984
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞