首先,SDCard所在的路径:
/mnt/sdcard android2.2
/sdcard android2.2版本之前 /sdcard-à/mnt/sdcard 用哪个都可以,镜像
业务层代码:
public void saveToSDCard(String filename, String filecontent)
throws IOException {
// 建议不要使用绝对路径
//File file = new File("/mnt/sdcard", filename);
System.out.println(Environment.getExternalStorageDirectory());
File file=new File(Environment.getExternalStorageDirectory(),filename);
FileOutputStream fos = new FileOutputStream(file);// 创建文件输出流
fos.write(filecontent.getBytes());
fos.close();
}
MainActivity.java代码:
package cn.bzu.fileoperation;
import java.io.IOException;
import cn.bzu.service.FileService;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.support.v4.app.NavUtils;
public class MainActivity extends Activity {
private FileService fileService;
private Button saveButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fileService = new FileService(this);
saveButton = (Button) this.findViewById(R.id.save);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText fileNameText = (EditText) findViewById(R.id.filename);
EditText fileContentText = (EditText) findViewById(R.id.filecontent);
String fileName = fileNameText.getText().toString();
String fileContent = fileContentText.getText().toString();
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
try {
fileService.saveToSDCard(fileName, fileContent);
Toast.makeText(MainActivity.this, R.string.success,
Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, R.string.failure,
Toast.LENGTH_LONG).show();
}
}else{
Toast.makeText(MainActivity.this, R.string.sdcarderror, Toast.LENGTH_LONG).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
AndroidManifest.xml中设置权限:
<!-- 创建文件删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />