第五课,android文件操作的实例,主要对SDcard的读写操作。
package com.myclover.file.service;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
import android.os.Environment;
public class FileOperateService {
private Context context;
public FileOperateService(Context context) {
this.context = context;
}
/**
* 功能描述:
* 文件保存的方法
* @param fileName 文件名
* @param content 文件的内容
* @param mode 文件的模式 如果为-1时,表示的是保存到SDcard卡上,否则就是保存到应用目录中
* @throws Exception
*/
public void saveFile(String fileName , String content , int mode) throws Exception
{
FileOutputStream fouts = null;
//文件保存到应用的目录下
if(mode != -1)
{
//如果保存在应用中,则直接使用openFileOutput即可打开应用中的文件
fouts = context.openFileOutput(fileName, mode);
}
else
{
//文件保存到SDcard卡上
//Environment.getExternalStorageDirectory()表示取得SDcard的路径,相当于"/sdcard/"
File file = new File(Environment.getExternalStorageDirectory() , fileName);
fouts = new FileOutputStream(file);
}
fouts.write(content.getBytes());
fouts.close();
}
/**
* 功能描述:
* 读取文件内容
* @param fileName 文件名
* @param isSdcard 是否读取sdcard,为true时表示取得的是SDCard的文件内容
* @return 返回值:返回文件内容
* @throws Exception
*/
public String readFile(String fileName , boolean isSdcard)throws Exception
{
FileInputStream fins = null;
if(isSdcard)
{
File file = new File(Environment.getExternalStorageDirectory() , fileName);
fins = new FileInputStream(file);
}
else
{
fins = context.openFileInput(fileName);
}
ByteArrayOutputStream bouts = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int len = 0;
while((len = fins.read(buf)) != -1)
{
bouts.write(buf, 0, len);
}
byte[] data = bouts.toByteArray();
fins.close();
bouts.close();
return new String(data);
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myclover.file"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FileDemoActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 当需要进行单元测试时,需要引入该包 -->
<uses-library android:name="android.test.runner"/>
</application>
<uses-sdk android:minSdkVersion="9" />
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 这里的 android:targetPackage的包名要跟应用package同一个目录,也就是测试类要与应用类同一个目录-->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.myclover.file" android:label="Test For FileDemo"/>
</manifest>
分享到:
相关推荐
在Android开发中,文件操作是不可或缺的一部分,无论是存储用户数据、缓存信息还是读取资源文件,都需要对文件系统有深入的理解。以下是一些关于Android文件操作的关键知识点,结合源码学习能帮助开发者更好地掌握这...
在开始文件操作之前,必须在AndroidManifest.xml文件中声明相应的权限,特别是对于读写外部存储(SD卡): ```xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ...
在Android中,可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库方式、内容提供器(Content provider)和网络。一.SharedPreferences方式二.文件存储方式三.SQLite数据库方式四.内容提供器(Content ...
通过分析这个"文件管理器FileManager"的源代码,开发者能深入了解Android文件操作的原理,提升文件管理功能的开发能力,同时学习到如何处理文件权限、UI更新、后台任务以及数据库集成等问题。这不仅有助于日常开发...
总的来说,构建一个Android文件浏览器实例涉及到文件系统操作、UI设计、事件处理以及文件操作。这需要对Android SDK有深入的理解,同时也需要熟悉文件I/O和多线程编程。通过实践和学习,你可以创建出功能强大且用户...
在Android开发中,Eclipse是一款曾经...这个实例不仅涵盖了文件系统的操作,还涉及到了Android UI设计、事件监听、异步处理等多方面知识。对于Android开发者来说,这样的实践有助于提升对Android平台的理解和开发技能。
本文将深入探讨Android中的文件存储实例,基于提供的源代码进行解析。 Android提供了多种文件存储方式,包括内部存储、外部存储、SQLite数据库、SharedPreferences以及ContentProvider等。在“TestFile”这个源代码...
以下是对`Android Fragment`实例的详细解释: 1. **Fragment的基本概念**: - Fragment是Android系统中用于构建可复用UI组件的类,它们可以包含UI元素、业务逻辑以及与Activity交互的接口。 - Fragment的存在主要...
"Android Excel操作实例demo"就是一个这样的项目,它展示了如何使用第三方库jxl.jar来实现对Excel文件的读写操作。 jxl.jar是一个Java库,允许开发者在没有Microsoft Excel的情况下读写Excel文件。在这个实例中,它...
这份“安卓Andriod源码——文件操作列表显示进入退出删除复制粘贴新建文件等等.zip”压缩包,很显然包含了实现这些功能的源代码。下面我们将深入探讨Android中涉及的这些文件操作技术。 1. 文件操作基础: Android...
本文将深入探讨如何实现Android手机间的文件传输实例,主要涉及的技术点包括:蓝牙传输、Wi-Fi Direct、Airdrop(仅限部分Android设备)以及云服务共享。 1. **蓝牙传输**: 蓝牙是一种短距离无线通信技术,适用于...
【安卓应用程序实例】这个压缩包提供了11个实用的Android应用程序源代码,是学习和深入理解Android开发的宝贵资源。对于那些对Android编程感兴趣的人来说,这些实例能够帮助他们快速掌握核心概念并提升实践能力。 ...
【Android安卓网站客户端实例——红孩子商城】 在移动互联网领域,Android平台的开发因其开源、灵活的特性,已经成为开发者首选的移动应用开发平台之一。本实例聚焦于Android客户端的开发,特别是针对电子商务领域...
在 android.nfc.tech 包中,定义了可以对 Tag 进行的读写操作的类,按照其使用的技术类型可以分成不同的类,如 NfcA, NfcB, NfcF, 以及 MifareClassic 等。在本次实例中,使用北京大学学生卡进行数据读取测试,学生...
这份“安卓Android源码——安卓Android 文件操作 列表显示 进入 退出 删除 复制 粘贴 新建文件等等.rar”资源提供了实现这些功能的源代码示例。下面,我们将详细探讨这些关键知识点。 1. 文件操作: 在Android中,...
本教程"最详细的Android开发教程实例"旨在提供一个全面的学习路径,帮助新手和有经验的开发者深入理解Android开发的核心概念和技术。 【Android开发入门】: Android开发入门是学习Android编程的第一步。"101- ...
### 安卓反编译dex文件格式实例分析 #### 第一部分:创造一个可供分析的Hello.dex ##### 测试环境 为了进行本次实验,我们需要搭建一个可靠的测试环境。本实验使用了以下配置: - **操作系统**: Ubuntu 12.04 64...
本文将通过一个具体的死锁导致的ANR实例,解析如何利用Android trace文件来分析和解决这类问题。 当Android系统检测到ANR发生时,会在/data/anr/目录下自动生成一个trace文件,其中包含了系统运行时的详细信息,如...
综上所述,实现Android的文件上传和多选、单选文件功能涉及到了文件选择器的定制、文件操作、网络通信等多个方面。通过合理的设计和优化,可以提供高效、安全的文件操作体验。在实际开发中,要不断迭代和优化,确保...