android文件操作-目录,文件存在性,读写文件

首先确认Android 检测目录是否存在,不存在则创建

方法如下:

我们假设SD卡是存在的,如果要检测SD卡是否存在,请参考前面的关于录音的文章,里面有具体的内容,和使用SD卡需要添加的权限,否则无法操作扩展存储设备

1.只创建一级目录的形式为:

例如:只在SD卡上建立一级目录("/sdcard/audio/"):

代码 

 boolean isFolderExists(String strFolder)
    {
        File file = new File(strFolder);
        
        if (!file.exists())
        {
            if (file.mkdir())
            {
                return true;
            }
            else
                return false;
        }
        return true;
    }

2.建立多级目录的形式如下:

例如:在SD卡上建立多级目录("/sdcard/meido/audio/"):

代码 

boolean isFolderExists(String strFolder) {
        File file = new File(strFolder);        
        if (!file.exists()) {
            if (file.mkdirs()) {                
                return true;
            } else {
                return false;

            }
        }
        return true;

    }

 

判断单个文件是否存在:

public boolean fileIsExists(String fullfile){
        //full direcation 
//        File f=new File("/sdcard/stockDic.dat");
        File f=new File(fullfile);
        if(!f.exists()){
                return false;
        }
        return true;
    }

 

下面是一个demo:

package com.example.androidfilestreamdemo;

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

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

public class MainActivity extends Activity implements OnClickListener {

    private final static String FILE_NAME="hello.txt";
    
    private Button mBRead;
    private Button mBWrite;
    
    private EditText edit1,edit2;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        mBWrite=(Button)findViewById(R.id.button1);
        mBRead=(Button)findViewById(R.id.button2);
        mBWrite.setOnClickListener(this);
        mBRead.setOnClickListener(this);
        
        edit1=(EditText)findViewById(R.id.editText1);
        edit2=(EditText)findViewById(R.id.editText2);
        
        
        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        int id;
        id=v.getId();
        
        switch(id){
        
            case R.id.button1:
                write2file(edit1.getText().toString());
                break;
            case R.id.button2:
                edit2.setText(readfnfile());
                break;
                
                default:
                
        }
        
    }
    
    public String readfnfile(){
        
        try {
            FileInputStream finput=openFileInput(FILE_NAME);
            byte[] buff=new byte[1024];
            int hasread=0;
            StringBuilder sb=new StringBuilder("");
            
            try {
                while((hasread=finput.read(buff))>0){
                    sb.append(new String(buff,0,hasread));
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return sb.toString();
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
        
    }
    
    public void write2file(String detail){
        
        try {
            
            FileOutputStream fopen=openFileOutput(FILE_NAME,MODE_APPEND);
            PrintStream ps=new PrintStream(fopen);
            ps.println(detail);
            ps.close();
            
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

 

 

 

posted @ 2013-11-14 00:24  MMLoveMeMM  阅读(553)  评论(0)    收藏  举报