Android文件保存
一、Android的底层使用Linux内核,文件对文件所有者、与文件所有者同组的其它人、以及其它组的成员分别有可读、可写和可执行三种权限,具体可以参考《Linux私房菜》,当然,学习Android不需要了解这么多啊,在Android中,文件操作大致有四种操作模式,分别是MODE_PRIVATE、MODE_APPEND、MODE_WORLD_READABLE、MODE_WORLD_WRITEABLE等。
下面对于四种操作模式进行简单的介绍:
- MODE_PRIVATE(私有操作模式):创建出来的文件只有本应用能够访问,其它应用不能访问,另外用私有操作模式生成的文件,写入文件的内容会覆盖以前已有的内容
- MODE_APPEND(追加操作模式):创建出来的文件只有本应用能够访问,其它应用不能访问,另外用追加操作模式生成的文件,写入文件的内容会追加在以前文件的前面
- MODE_WORLD_READABLE(可读操作模式):创建出来的文件所有应用都能够访问,另外用可读操作模式生成的文件,写入文件的内容会覆盖掉原来的内容,但是不能修改内容
- MODE_WORLD_WRITEABLE(可写操作模式):创建出来的文件其它应用不能够访问,另外用可写操作模式生成的文件,写入文件的内容会覆盖掉原来的内容,其它应用也可以修改内容
public class FileService { private Context context = null; private static final String TAG = "FileService"; public FileService(Context context) { this.context = context; } /* * 私有操作模式保存文件 */ public void savePrivate(String nameText, String contentText) throws IOException { OutputStream out = context.openFileOutput(nameText, Context.MODE_PRIVATE); Log.i(TAG,nameText); out.write(contentText.getBytes()); out.close(); } /* * 追加操作模式保存文件 */ public void saveAppend(String nameText, String contentText) throws IOException { OutputStream out = context.openFileOutput(nameText, Context.MODE_APPEND); Log.i(TAG,nameText); out.write(contentText.getBytes()); out.close(); } /* * 可读操作模式保存文件 */ public void saveReadable(String nameText, String contentText) throws IOException { OutputStream out = context.openFileOutput(nameText, Context.MODE_WORLD_READABLE); Log.i(TAG,nameText); out.write(contentText.getBytes()); out.close(); } /* * 可写操作模式保存文件 */ public void saveWritable(String nameText, String contentText) throws IOException { OutputStream out = context.openFileOutput(nameText, Context.MODE_WORLD_WRITEABLE); Log.i(TAG,nameText); out.write(contentText.getBytes()); out.close(); } }
二、文件的读取
读取文件的时候,如果读取文件是当前应用底下的文件可以使用Context对象来获得文件输入流,如果是读取其它目录的文件,自己创建一个文件读取流即可,读取相对比较简单,就不多做介绍。
/** * 读取文件内容 * @param fileName 文件名 * @return java.lang.String 返回文件内容 * @throws IOException 抛出的IO流异常 */ public String read(String fileName) throws IOException { InputStream is = context.openFileInput(fileName); byte[] buf = new byte[1024]; ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len = 0; while((len = is.read(buf)) != -1) { baos.write(buf , 0 , len); } is.close(); byte[] res = baos.toByteArray(); baos.close(); return new String(res); }
/** * 读取非当前应用底下的文件 * @return java.lang.String 返回文件内容 * @throws IOException 抛出IO流异常 */ public String read() throws IOException { String path = PATH + fileName; File file = new File(path); FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; int len = 0; while((len = fis.read(buf)) != -1) { baos.write(buf , 0 , len); } byte[] result = baos.toByteArray(); return new String(result); }
三、保存文件到存储卡(简略介绍)
/** * 保存文件到存储卡设备 * @param name 要保存的文件名 * @param content 文件内容 * @throws IOException 抛出IO流异常 */ public void saveSdcard(String name, String content) throws IOException { File file = new File("/mnt/sdcard/" + name); FileOutputStream fos = new FileOutputStream(file); fos.write(content.getBytes()); fos.close(); }
相关推荐
在Android平台上,对TXT文件进行保存和读取是常见的数据持久化操作,尤其适用于存储少量结构化的文本数据。本文将详细讲解如何在Android应用中实现TXT文件的保存和读取功能,以及涉及到的相关知识点。 首先,我们...
这个场景中,我们关注的重点是如何在Android应用中创建并保存一个TXT文件。以下是实现这一功能的关键知识点: 1. **权限申请**: 在Android 6.0(API级别23)及以上版本,应用需要在运行时请求`WRITE_EXTERNAL_...
通过以上步骤,可以实现Android客户端的文件选择和上传功能,并在服务器端成功接收并保存这些文件。为了完善应用,还应考虑用户体验,如显示上传进度、提供取消上传的选项,以及对上传结果的反馈。如果你有任何问题...
总之,Android视频录制并保存到本地涉及到`MediaRecorder`的使用,文件路径的管理以及权限控制等多个环节。理解这些知识点对于任何Android开发者来说都是必不可少的。通过以上步骤,你可以在自己的应用中实现这一...
客户端保存已上传的文件段信息,当重新发起上传时,可以从已上传的最后一个段开始继续。 6. **错误处理与确认**:在整个过程中,客户端和服务器都需要进行错误检测和响应。例如,如果服务器未能正确接收某个文件段...
SharedPreferences是Android提供的一种轻量级的数据持久化方式,它以键值对的形式存储数据,并提供了XML文件的读写操作。通常,我们通过`PreferenceManager.getDefaultSharedPreferences(Context)`获取默认的...
在Android开发中,文件复制和进度条的显示是常见的需求,尤其在移动应用中,用户可能需要将数据从一个位置移动到另一个位置,或者在后台下载文件时展示进度。`ProgressDialog`是Android SDK提供的一种对话框组件,...
Android保存文件到本地路径问题 常见路径 例如: application 包名: com.my.company 项目名: chat /data/data == ///data/user/0 getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ ...
在Android平台上,下载图片并保存到用户设备的相册是一项常见的功能。这通常涉及到网络请求、文件操作以及与系统媒体库的交互。以下是对`Android 下载图片保存到相册`这一主题的详细讲解。 首先,我们需要理解...
在Android平台上实现RTSP流的实时播放以及将流媒体数据保存为MP4文件,通常涉及到多个技术栈的集成,其中包括FFmpeg、Android多媒体框架以及文件处理等。以下是对这个项目中涉及的关键知识点的详细说明: 1. **...
Android用文件读取保存记录
便于开发,测试,定位问题。方便查看日志。所有日志保存本地文件,可按日志等级保存,定期删除,文件最长可保存自定义天数,代码中写的3天时间,天 日志文件将会删除。
便于开发,测试,定位问题。方便查看日志。所有日志保存本地文件,可按日志等级保存,定期删除,文件最长可保存自定义天数,代码中写的3天时间,天 日志文件将会删除。
在Android开发中,下载文件是一项常见的任务,尤其在构建应用时需要从服务器获取资源或更新数据。本"Android 下载文件Demo"旨在演示如何利用字节流进行文件下载操作。在Java和Android中,输入输出流(IO流)是处理...
在Android开发中,有时我们需要将应用内部的资源文件,如配置文件、数据库文件或静态数据等,复制到手机的外部存储(内存或SD卡)以便于应用运行时使用。这个过程通常涉及到Android的文件系统操作和权限管理。下面将...
解析请求中的各部分,提取文件数据并保存到服务器的指定位置。 8. **错误处理与反馈**: - 在Android客户端,确保捕获可能发生的网络异常,如连接失败、超时或服务器返回的错误状态码。根据不同的错误情况,向用户...
在Android平台上进行文件上传是一项常见的任务,特别是在开发涉及用户交互的应用程序时,如社交媒体应用、云存储服务等。本文将详细解析如何在Android系统中实现文件上传,主要围绕"Android文件上传"这一主题展开,...
在Android应用开发中,有时我们需要将一些系统配置信息存储在外部文件中,以方便管理和更新。在这种情况下,`ini`文件格式是一个常见的选择,因为它的结构简单,易于读写。本文将详细介绍如何在Android项目中读取...
有需要可以看看,动态将想要的数据通过该接口直接写到本地文件
`audioRecordTest`可能是一个音频录制测试文件,表明你可能在应用中进行了音频录制并保存了文件。 2. **建立Socket连接**:`socketTest`暗示了使用Socket作为通信协议。在Android中,你可以使用`java.net.Socket`类...