Android数据库存储sqlite外部存储数据读写

    xiaoxiao2025-07-14  6

    package com.example.day11_datastoreage01; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Environment; import android.os.StatFs; import android.util.Log; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { private Context mcontext =this ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public  void cunchu(View v){ //1 判断存储的目录的状态  String state  =  Environment.getExternalStorageState(); if(Environment.MEDIA_UNMOUNTED.equals(state) || Environment.isExternalStorageRemovable()){ Toast.makeText(mcontext, "sdcard 不可用", 0).show(); return ; } //2获得存储的目录 //2.1 获得应用程序共有目录(大家都可以访问的目录) File sdcard  =  //mnt/sdcard Environment.getExternalStorageDirectory(); Log.i("TAG", sdcard.getPath()); File sdcardMusic = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES); Log.i("TAG", sdcardMusic.getPath()); //2 2 获得应用程序私有存储目录(私有目录,应用程序卸载时候此目录中的数据会被删除) File privateCache = getExternalCacheDir(); //需要添加权限 Log.i("TAG", privateCache.getPath()); File privateMusic = getExternalFilesDir(Environment.DIRECTORY_MOVIES); Log.i("TAG", privateMusic.getPath()); //3 获得目录空间大小(statFs) StatFs  sf = new StatFs(sdcard.getPath()); //3.1 获得总的块数 int blockCount = sf.getBlockCount(); //3.2获得可用块数 int aCount = sf.getAvailableBlocks(); //3.3获得空闲块数(>=可用块数) int fCount = sf.getFreeBlocks(); //3.4获得每块字节数 int size=sf.getBlockSize(); //3.5获得磁盘目录总大小(M) double tSize=blockCount*size*1.0/1024/1024; //3.6获得可用大小 double aSize=aCount*size*1.0/1024/1024; Log.i("TAG", "总大小:"+tSize); Log.i("TAG", "可用大小:"+aSize); //4.向磁盘写入数据 String data="helloworld"; if(data.getBytes().length>aCount*size){ Toast.makeText(this, "磁盘空间不足", 0).show(); return; } FileOutputStream out=null; try{ out=new FileOutputStream(new File(sdcard,"s1.txt")); out.write(data.getBytes()); Log.i("TAG", "write ok"); Toast.makeText(this, "write ok", 0).show(); }catch(Exception e){ e.printStackTrace(); }finally{ if(out!=null)try{out.close();}catch(Exception e){} } } public void ReadSdcard(View v){ File  sdCardPath = Environment.getExternalStorageDirectory(); File  f  = new File(sdCardPath, "s1.txt"); InputStream  in  = null  ; try { in = new FileInputStream(f); byte buffer[] =new byte[in.available()]; int readlen  = in.read(buffer); String s = new String(buffer, 0, readlen); Toast.makeText(mcontext, s, 0).show(); } catch (Exception e) { e.printStackTrace(); }finally { if(in != null){ try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
    转载请注明原文地址: https://ju.6miu.com/read-1300693.html
    最新回复(0)