Android 内部存储常用知识

首先内部存储路径为/data/data/appPackageName/,所有内部存储中保存的文件在用户卸载应用的时候会被删除。
基于应用的内部存储路径常用知识:
一、 files
1. Context.getFilesDir(),该方法返回/data/data/appPackageName/files的File对象。
2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInputStream和FileOutputStream对象。
3. Context.fileList(),返回files下所有的文件名,返回的是String[]对象。
4. Context.deleteFile(String),删除files下指定名称的文件。

二、cache
1. Context.getCacheDir(),该方法返回/data/data/appPackageName/cache的File对象。

三、custom dir

getDir(String name, int mode),返回/data/data/appPackageName/下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹。

四、可用内部存储

        File path = Environment.getDataDirectory();

         StatFs stat = new StatFs(path.getPath());
         
         //文件系统的块的大小(byte)
         long blockSize1 = stat.getBlockSize();
         //文件系统的总的块数
         long totalBlocks1 = stat.getBlockCount();
         //文件系统上空闲的可用于程序的存储块数
         long availableBlocks1 = stat.getAvailableBlocks();
         
         //总的容量
         long totalSize1 = blockSize1*totalBlocks1;
         long availableSize1 = blockSize1*availableBlocks1;
         
         String totalStr1 = Formatter.formatFileSize( this , totalSize1);
         String availableStr1 = Formatter.formatFileSize( this , availableSize1);
         
         internalTv.setText( "内部存储的大小" + "\n" + "总大小:" +totalStr1+ "\n" + "可用大小:" +availableStr1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个常见的 Android 内部存储案例是保存应用程序的数据。例如,一个笔记应用程序可以将用户创建的笔记保存在内部存储中,以便在应用程序关闭后再次打开时重新加载。 以下是一个简单的示例代码,演示如何使用 Android 内部存储 API 在应用程序中保存和检索数据: ```java // 保存数据到内部存储 String filename = "notes.txt"; String fileContents = "This is my note."; try { FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE); fos.write(fileContents.getBytes()); fos.close(); } catch (IOException e) { e.printStackTrace(); } // 从内部存储中读取数据 String retrievedContents = ""; try { FileInputStream fis = context.openFileInput(filename); InputStreamReader isr = new InputStreamReader(fis); BufferedReader bufferedReader = new BufferedReader(isr); String line; while ((line = bufferedReader.readLine()) != null) { retrievedContents += line; } fis.close(); } catch (IOException e) { e.printStackTrace(); } ``` 在这个示例中,我们首先保存一个字符串到名为 "notes.txt" 的文件中。我们使用 `openFileOutput()` 方法打开一个文件输出流,并使用 `write()` 方法写入字符串内容。最后,我们关闭文件输出流。 接下来,我们使用 `openFileInput()` 方法打开一个文件输入流,并使用 `BufferedReader` 逐行读取文件内容。最终,我们将文件内容保存在 `retrievedContents` 字符串变量中,以便后续使用。 请注意,这个示例代码并没有处理异常。在实际应用程序中,你应该使用 try-catch 块来处理可能出现的异常,以确保你的应用程序具有较高的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值