正文  数据库 > 文件存储/SD卡 >

android的文件操作(SD卡)

在上次的博客中写过直接操作手机自带存储器的程序,这次就接着上次的博客协议下对sd卡的文件操作。与自带存储不同的是使用sd卡需要用户授权 <uses-permission and...

在上次的博客中写过直接操作手机自带存储器的程序,这次就接着上次的博客协议下对sd卡的文件操作。与自带存储不同的是使用sd卡需要用户授权

 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 
 千万要记住不能写颠倒了,不然看不到结果

之后写个方法来保存文件


public void saveToSD(String filename,String content) throws Exception{ 
        //getExternalStorageDirectory()可以取得sd卡得路径 
        File f=new File(Environment.getExternalStorageDirectory(),filename); 
        FileOutputStream out2=new FileOutputStream(f); 
        out2.write(content.getBytes()); 
        out2.close(); 
    } 

最后就可以在控制层使用这个方法了,需要对SD卡得状态作判断,取得状态可以使用Environment.getExternalStorageState(),如果可用才能保存文件,反之就提示“sd卡不存在或不可用”

www.2cto.com
package org.lxh.file; 
 
import org.lxh.service.FileService; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Environment; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
 
public class FileActivity extends Activity { 
    private FileService service; 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
         
        service=new FileService(this); 
        Button button=(Button)findViewById(R.id.button); 
        button.setOnClickListener(new View.OnClickListener() {   
             
            public void onClick(View v) { 
                EditText filename=(EditText)findViewById(R.id.filename); 
                EditText content=(EditText)findViewById(R.id.content); 
                try { 
                    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
                        service.saveToSD(filename.getText().toString(), content.getText().toString()); 
                        Toast.makeText(FileActivity.this, R.string.success, 1).show(); 
                    }else{ 
                        Toast.makeText(FileActivity.this,  R.string.sd, 1).show(); 
                    } 
                    //service.saveFile(filename.getText().toString(), content.getText().toString()); 
                     
                } catch (Exception e) { 
                    Toast.makeText(FileActivity.this, R.string.failure, 1).show(); 
                    Log.e("FileActivity", e.getMessage()); 
                } 
            } 
        }); 
         
    } 

下面 把strings.xml也贴出来


<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="hello">Hello World, FileActivity!</string> 
    <string name="app_name">文件的读取</string> 
    <string name="filename">输入文件名称</string> 
    <string name="content">输入文件内容</string> 
    <string name="button">保存</string> 
    <string name="success">文件保存成功</string> 
    <string name="failure">文件保存失败</string> 
    <string name="sd">sd卡不存在或不可用</string> 
</resources> 

到这里就可以对SD卡进行操作了,这次的东西比较少。有问题也可以给我留言。

 

作者 chenwill3