Android开发进阶:如何读写Androi“.NET研究”d文件

简介:   Android主要有四大主要组件组成:Activity、ContentProvider、Service、Intent组成。Android文件的运行主要需要读写四大组件的文件。本文将介绍如何读写Android文件,希望对正在进行Android开发的朋友有所帮助。

  Android主要有四大主要组件组成:Activity、ContentProvider、Service、Intent组成。Android文件的运行主要需要读写四大组件的文件。本文将介绍如何读写Android文件,希望对正在进行Android开发的朋友有所帮助。

  文件存放位置

  在Android中文件的I/O是存放在/data/data/<package name>/file/filename目录下。

  提示:Android是基于linux系统的,在linux的文件系统中不存在类似于Windows的磁盘分区现象,其是以一个正斜杠“/”开头。

  Android中得到输入输出流

  在Android中,对于流的操作十分简单。在Context类中有如下两个方法可以直接得到文件输入输出流:

 
 
1 . public FileInputStream openFileInput (String name)
2 . public FileOutputStream openFileOutput (String name, 上海网站建设yle="color: #0000ff;">int mode)

  顾名思义,通过如上方法就可以得到文件输入输出流。对于第二个方法中的mode,有如下四种模式:

  ◆Use 0 or MODE_PRIVATE( the default operation) :用0表示默认值,只能够创建文件的应用程序访问该文件,每次文件写入为覆盖方式。

  ◆MODE_APPEND to append to an existing file: 每次文件写入为追加方式,类似于StringBuffer中的append()方法。

  ◆MODE_WORLD_READABLE  :只有读权限。

  ◆MODE_WORLD_WRITEABLE :只有写权限。

  提示:如果想同时得到读与写的权限,则可以在mode处通过如下方式创建:

 
 
MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE

  对于Java SE部分的补充

  FileOutputStream:

  public void write(byte[] b) throws IOException 该方法可将指定的字节数组写入文件输出流

  FileInputStream:

  public int read(byte[] b) throws IOException 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。

  对于输出流直接使用write方法即可,可参考如下代码:

  Java代码

 
 
1 . < span style = " white-space: pre; " > </ span > /**
2. * 写入数据
3. *
@param fs
4. *
@param content
5.
*/
6 . public void fileWrite(FileOutputStream fos,String content){
7 . byte [] contentcontentByteArray = content.getBytes();
8 . try {
9 . fos.write(contentByteArray);
10 . } catch (IOException e1) {
11 . e1.printStackTrace();
12 . }
13 . try { // 关闭流
14 . fos.close();
15 . } catch (IOException e) {
16 . e.printStackTrace();
17 . }
18 . }

  对于输入流,出于性能考虑,可先使用ByteArrayOutputStream,向内存中创建一个字符数组,当将文件读完后,在读入,参考如下代码:

  Java代码

 
 
1 . * 读数据
2 . * @param fis
3 . * @ return
4 上海徐汇企业网站设计与制作>. */
5 . public String fileRead(FileInputStream fis){
6 . ByteArrayOutputStream baos = new ByteArrayOutputStream();
7 . byte [] buffer = new byte [ 1024 ];
8 . int len = - 1 ;
9 . try {
10 . while ((len = (fis.read(buffer))) != - 1 ){
11 . baos.write(buffer, 上海企业网站设计与制作>0 ,len);
12 . }
13 . } catch (IOException e) {
14 . e.printStackTrace();
15 . }
16 . String result = new String(baos.toByteArray());
17 . // System.out.println(result);
18 . try {
19 . baos.close();
20 . fis.close();
21 . } catch (IOException e) {
22 . e.printStackTrace();
23 . }
24 . return result;
25 . }

  ByteArrayOutputStream:此类实现了一个输出流,其中的数据被写入一个 byte 数组。

  public void write(byte[] b,int off,int len) 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte 数组输出流。

  可参考代码:FileIO 代码下载

目录
相关文章
|
2月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
200 3
|
3月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
156 0
|
7月前
|
人工智能 芯片
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
|
5月前
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
191 0
|
9月前
|
Linux C# Windows
.NET使用MiniWord高效生成Word文件
.NET使用MiniWord高效生成Word文件
237 12
|
9月前
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
149 9
|
9月前
|
Web App开发 前端开发 调度
一款基于 .NET + Blazor 开发的智能访客管理系统
一款基于 .NET + Blazor 开发的智能访客管理系统
130 8
|
9月前
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
127 7
|
9月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
231 5
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
198 7

热门文章

最新文章