继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

数据存储

潇湘沐
关注TA
已关注
手记 104
粉丝 12
获赞 38

一、ProgressDialog(是一个含有进度条以及消息提示的对话框)

        ProgressDialog的使用:

                1、创建对象;

1.  final ProgressDialog dialog = new ProgressDialog(MainActivity.this);

                2、调用对象相应方法来完成信息的配置;

1.                  dialog.setTitle("软件更新");

2.                             dialog.setMax(100);

3.                             dialog.setMessage("软件正在更新...");

4.                             dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

                3、设置事件的监听;

1.                             dialog.setButton3("确定", new DialogInterface.OnClickListener() {

2.   

3.                                    @Override

4.                                    public void onClick(DialogInterface dialog, int which) {

5.   

6.                                    }

7.                             });

8.                             dialog.setButton2("取消", new DialogInterface.OnClickListener() {

9.   

10.                                   @Override

11.                                   public void onClick(DialogInterface dialog, int which) {

12.                                          num=0;

13.                                          flag=false;

14.                                          dialog.cancel();

15.                                          dialog.dismiss();

16.                                   }

17.                            });

18.                            new Thread(new Runnable() {

19.  

20.                                   @Override

21.                                   public void run() {

22.                                          while (num <= 100 || flag==true) {

23.                                                try {

24.                                                       Thread.sleep(100);

25.                                                       dialog.setProgress(num);

26.                                                       num++;

27.                                                } catch (InterruptedException e) {

28.                                                       e.printStackTrace();

29.                                                }

30.                                          }

31.  

32.                                   }

33.                            }).start();

                4、.show();

1.                             dialog.show();

二、数据存储

        1、内部存储(手机中特定的存储区域,在这块区域中主要存储的是手机安装程序、系统文件)

                (1)内部存储区域中的文件的特点是:可以给图片设置一个权限,这个权限一般情况下都是只允许当前的应用来访问这个文件。

                (2)内部存储区域的访问:

                        <1>文件的创建

1.  /**

2.          * 创建一个文件

3.          */

4.         private void createFile() {

5.                File file = getFilesDir();

6.                File file2=new File(file,"a.txt");

7.                if (!file2.exists()) {

8.                      try {

9.                             file2.createNewFile();

10.                     } catch (IOException e) {

11.                            e.printStackTrace();

12.                     }

13.               }

14.        }

                        <2>向文件中写入内容

1.         /**

2.          * 向文件中写入内容

3.          */

4.         private void writeToFile() {

5.                File file = getFilesDir();

6.                File file2=new File(file,"a.txt");

7.                FileOutputStream out=null;

8.                try {

9.                      out=new FileOutputStream(file2);

10.                     out.write("我是中国人".getBytes());

11.               } catch (FileNotFoundException e) {

12.                     e.printStackTrace();

13.               } catch (IOException e) {

14.                     e.printStackTrace();

15.               }finally{

16.                     if (out!=null) {

17.                            try {

18.                                   out.close();

19.                            } catch (IOException e) {

20.                                   e.printStackTrace();

21.                            }

22.                     }

23.               }

24.        }

                        <3>读取文件中的数据

1.         /**

2.          * 读取文件中的内容

3.          */

4.         private void readFromFile() {

5.                File file=getFilesDir();

6.                File file2=new File(file, "a.txt");

7.                FileInputStream input=null;

8.                try {

9.                      input=new FileInputStream(file2);

10.                     byte[] buf=new byte[(int) file2.length()];

11.                     input.read(buf);

12.                     String result=new String(buf);

13.                     Log.i("--文件中的信息---", result);

14.               } catch (FileNotFoundException e) {

15.                     e.printStackTrace();

16.               } catch (IOException e) {

17.                     e.printStackTrace();

18.               }finally{

19.                     if (input!=null) {

20.                            try {

21.                                   input.close();

22.                            } catch (IOException e) {

23.                                   e.printStackTrace();

24.                            }

25.                     }

26.               }

27.        }

                        <4>创建文件夹

1.         /**

2.          * 创建文件夹

3.          */

4.        

5.         private void createDir() {

6.                /*

7.                 * 第一种方式

8.                 */

9.                /*File file=getDir("b.txt", Context.MODE_PRIVATE);

10.               if (!file.exists()) {

11.                     file.mkdir();

12.               }*/

13.               /*

14.                * 第二种方式

15.                */

16.               String path=getFilesDir().getAbsolutePath()+"/c.txt";

17.               new File(path).mkdir();

18.        }

                        <5>删除目录或者文件

1.                case R.id.btn_06:

2.                      String path=getFilesDir().getAbsolutePath()+"/c.txt";

3.                      File file=new File(path);

4.                      deleteFileOrDir(file);

5.                      break;

1.         /**

2.          * 删除目录或文件

3.          */

4.         private void deleteFileOrDir(File file) {

5.                if (file.isFile()) {

6.                      file.delete();

7.                }else if (file.isDirectory()) {

8.                      File[] files = file.listFiles();

9.                      if (files!=null) {

10.                            for (int i = 0; i < files.length; i++) {

11.                                   deleteFileOrDir(files[i]);

12.                            }

13.                     }

14.               }

15.               file.delete();

16.        }

        2、SharedPreferences:

                一般情况下SharedPreferences的用途:

                        1.放置用户的登录信息;

                        2.放置软件的配置信息;

                        3.放置临时数据;

                特点:数据的存储采用的是键值对的形式来进行存储的,键是不可以重复的,值是可以重复的(类似Map)

                (1)SharedPreferences的使用步骤:

                        1.获取SharedPreferences的对象;

                                第一个参数:表示SharedPreferences中的XML文件的名称,不需要添加.xml;

                                第二个参数:表示创建的文件的访问权限,一般情况下写成Context.MODE_PRIVATE(表示只能够自己访问)

1.  SharedPreferences sp = getSharedPreferences("abcd", Context.MODE_PRIVATE);

                        2.添加数据需要通过sp.edit()来获取一个Eidtor对象;

1.  Editor edit = sp.edit();

                        3.通过Eidtor对象的put方法向里面添加数据;

1.  edit.putBoolean("key1", true);

2.  edit.putInt("num", 100);

3.  edit.putString("name", "xiaoming");

                        4.添加完数据必须通过.commit()方法提交数据,必须执行此方法。

1.  edit.commit();

                (2)SharedPreferences的访问步骤:

                        1.获取SharedPreferences的对象;

                                第一个参数:表示SharedPreferences中的XML文件的名称,不需要添加.xml;

                                第二个参数:表示创建的文件的访问权限,一般情况下写成Context.MODE_PRIVATE(表示只能够自己访问)

1.  SharedPreferences sp1 = getSharedPreferences("abcd", Context.MODE_PRIVATE);

                        2.通过SharedPreferences的get方法来获取数据

1.  boolean b=sp1.getBoolean("key1", false);

2.  int i=sp1.getInt("num", 0);

3.  String string=sp1.getString("name", "小明");

4.  Log.i("---------", b+" "+i+" "+string);

                (3)SharedPreferences的清除步骤:

                        1.  1.获取SharedPreferences的对象;

                                第一个参数:表示SharedPreferences中的XML文件的名称,不需要添加.xml;

                                第二个参数:表示创建的文件的访问权限,一般情况下写成Context.MODE_PRIVATE(表示只能够自己访问)

1.  SharedPreferences sp2 = getSharedPreferences("abcd", Context.MODE_PRIVATE);

                        2.获取Eidt对象

1.  Editor edit2 = sp2.edit();

                        3.通过edit2.remove("num")或edit2.clear()来进行删除操作

1.  edit2.remove("num");

2.  edit2.clear();

                        4.提交请求

1.  edit2.commit();

        3、SD卡文件的响应操作

                (1)检测是否挂载

1.  /**

2.          * 检测dCard是否已经挂载

3.          * @return

4.          */

5.         public static boolean checkSdcardExistOrNot(){

6.                //返回的是当前SdCard的状态

7.                String state = Environment.getExternalStorageState();

8.                if (Environment.MEDIA_MOUNTED.equals(state)) {

9.                      return true;

10.               }else {

11.                     return false;

12.               }

13.              

14.        }

                (2)获取当前的SdCard的剩余空间大小

1.         /**

2.          * 获取当前的SdCard的剩余空间的大小

3.          */

4.         @SuppressWarnings("deprecation")

5.         public static int getFreeSpaceSize(){

6.                //第一步:获取的是SdCard的根目录

7.                File file = Environment.getExternalStorageDirectory();

8.                //第二步:获取Statfs(专门用来获取系统信息)

9.                StatFs sf=new StatFs(file.getAbsolutePath());

10.               //获取每一个块的大小

11.               int blockSize = sf.getBlockSize();

12.               //获取一共有多少个块

13.               int blockCount = sf.getBlockCount();

14.               //获取空闲的快的数量

15.               int availableBlocks = sf.getAvailableBlocks();

16.               Log.i("SdCard的总大小", -blockCount*blockSize/1024/1024+"MB");

17.               Log.i("SdCard的总大小", -availableBlocks*blockSize/1024/1024+"MB");

18.               return availableBlocks*blockSize/1024/1024;

19.              

20.        }

                (3)复制文件

1.         /**

2.          * 把前面的文件复制到后面的文件夹中

3.          */

4.         public static void copyFile(File fileSource,File fileDesternation){

5.                FileInputStream input=null;

6.                FileOutputStream out=null;

7.                try {

8.                      input=new FileInputStream(fileSource);

9.                      out=new FileOutputStream(fileDesternation);

10.                     byte [] buf=new byte[1024];

11.                     int len;

12.                     while ((len=input.read(buf))!=-1) {

13.                            out.write(buf, 0, len);

14.                     }

15.               } catch (FileNotFoundException e) {

16.                     e.printStackTrace();

17.               } catch (IOException e) {

18.                     e.printStackTrace();

19.               }finally{

20.                     if (input!=null) {

21.                            try {

22.                                   input.close();

23.                            } catch (IOException e) {

24.                                   e.printStackTrace();

25.                            }

26.                     }

27.                     if (out!=null) {

28.                            try {

29.                                   out.close();

30.                            } catch (IOException e) {

31.                                   e.printStackTrace();

32.                            }

33.                     }

34.               }

35.        }

 



    

原文链接:http://www.apkbus.com/blog-815579-61594.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP