External Storage外部存储——SD卡

来源:互联网 发布:淘宝代装修接活儿 编辑:程序博客网 时间:2024/05/21 13:57
External Storage外部存储——SD卡
JavaIO操作
文件操作 FileInputStream,FileOutputStream,FileReader,


FileWriter
File :操纵文件或者目录
BufferedReader readLine()
使用文件的路径:
Java开发:相对路径
Android卡发:绝对路径,sd卡根路径+项目文件夹+文件
   注意事项:
1)权限 (只要程序中使用SD卡,添加写入权) 
READ_EXTERNAL_STORAGE(新增)
WRITE_EXTERNAL_STORAGE
2)使用SD卡操作前检查SD卡是否可用
if(Environment.MEDIA_MOUNTED.equals


(Environment.getExternalStorageState())){
// sd卡可用
}
3)关于SD卡设备的路径
String sdRoot = Environment.getExternalStorageDirectory


().getAbsolutePath();

4)使用模拟器测试时,一定要注意模拟器要给sd卡分配空间大小



以下是代码:

public class MainActivity extends Activity {private String sdRoot , path , filename;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if(!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {Toast.makeText(this, "请检查sd卡是否成功挂载!", Toast.LENGTH_LONG).show() ;finish();return;}sdRoot = Environment.getExternalStorageDirectory().getAbsolutePath() ;path = "demo" ;filename = "weather.txt" ;// 从sd卡读取数据readFromsd() ;// 写入sd卡缓存数据saveTosd() ;Toast.makeText(this, "保存缓存数据成功", Toast.LENGTH_LONG).show() ;}/** * 从sd卡读取缓存数据 */private void readFromsd() {FileReader fr = null ;BufferedReader br = null ;try {fr = new FileReader(sdRoot + "/" + path + "/" + filename) ;br = new BufferedReader(fr) ;StringBuffer sbuffer = new StringBuffer() ;String line = null ;while(null != (line=br.readLine())) {sbuffer.append(line + "\n") ;}TextView tv = (TextView) findViewById(R.id.tv) ;tv.setText(sbuffer.toString()) ;} catch (Exception e) {e.printStackTrace();Toast.makeText(this, "没有缓存数据!", Toast.LENGTH_LONG).show() ;} finally {if(null != br) {try {br.close() ;} catch (IOException e) {e.printStackTrace();}}if(null != fr) {try {fr.close() ;} catch (IOException e) {e.printStackTrace();}}}}/** * 往sd卡写入数据 */private void saveTosd() {FileWriter fw = null ;try {// 判定路径是否存在,不存在应该创建File file = new File(sdRoot + "/" + path) ;if(!file.exists() || !file.isDirectory()) {file.mkdirs();// 创建目录}// 写入fw = new FileWriter(sdRoot + "/" + path + "/" + filename) ;fw.write("tody:29\n") ;fw.write("tomorrow:31\n") ;fw.write("random : " + Math.random() + "\n") ;} catch (IOException e) {e.printStackTrace();} finally {if(null != fw) {try {fw.close() ;} catch (IOException e) {e.printStackTrace();}}}}}


0 0
原创粉丝点击