- 浏览: 3462080 次
- 性别:
- 来自: China
文章分类
- 全部博客 (536)
- ajax (1)
- Algorithm (14)
- Android (40)
- CSS/HTML... (2)
- defy (3)
- DesignPattern (2)
- dorado (0)
- Drools (6)
- English/日本語 (7)
- Flex (2)
- Framework (0)
- Google (3)
- hibernate (13)
- homework (3)
- HTML5 (0)
- IDE (29)
- java (45)
- javaee (7)
- Javascript (14)
- java组件 (5)
- jQuery (4)
- jsp (8)
- jsf (2)
- Linux (2)
- lucene (0)
- mysql (6)
- news (3)
- Oracle (8)
- other (4)
- PHP (5)
- Python (0)
- Software Engineering (3)
- spring (7)
- struts1.x (14)
- struts2.x (14)
- strolling in cloud (1)
- subject:javaEnhance (20)
- Tomcat (7)
- validator (3)
- 学习·方法·心得 (8)
- .NET (2)
- vba (6)
- groovy (5)
- grails (2)
- SWT (0)
- big data (1)
- perl (1)
- objective-c (50)
- product (1)
- mac (7)
- ios (188)
- ios-phone (2)
- ios-system (15)
- ios-network (5)
- ios-file (4)
- ios-db (1)
- ios-media (3)
- ios-ui (27)
- ios-openSource (6)
- ios-animation (5)
- ios-drawing (7)
- c (2)
- ios-app (2)
- ios-course (15)
- ios-runtime (14)
- ios-code (8)
- ios-thread (8)
- ios-LBS (2)
- ios-issue (1)
- ios-design (2)
- Jailbreak (2)
- cocos2d (0)
- swift (16)
- ios-framework (4)
- apple watch (4)
- ios-web (1)
- react native (3)
- TVOS (1)
- OpenGL (1)
最新评论
-
xiaobinggg:
...
Session机制详解 -
菜鸟学生会:
Drools规则工作流引擎开发教程网盘地址:http://pa ...
Drools入门-----------环境搭建,分析Helloworld -
wangyudong:
不是很好用,不支持自动化测试RESTful API,也不支持自 ...
Simple REST Client POST使用方法 -
Paul0523:
很棒的一篇文章,感谢楼主分享
Session机制详解 -
啸笑天:
获取原型对象的三种方法<script>functi ...
复习JavaScript面向对象技术
Android的文件读写与JavaSE的文件读写相同,都是使用IO流。而且Android使用的正是JavaSE的IO流,下面我们通过一个练习来学习Android的文件读写。
1.创建一个Android工程
Project name:File
BuildTarget:Android2.2
Application name:文件读写
Package name:com.jbridge.file
Create Activity:DateActivity
Min SDK Version:8
strings.xml文件内容:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">数据保存</string>
<string name="file_name">文件名</string>
<string name="file_content">文件内容</string>
<string name="button_file_save">保存</string>
<string name="button_file_read">读取</string>
<string name="file_save_success">保存文件成功</string>
<string name="file_save_failed">保存文件失败</string>
<string name="file_read_failed">读取文件失败</string>
</resources>
Android建议采用MVC开发模式,所以我们在Android应用开发中最好使用MVC设计模式。MVC设计模式使三层分离,从而很好的解耦,何乐而不为。
首先我们向工程中添加一个FileService.java:
package com.jbridge.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 FileService {
// Activity的父类的父类就是context,context与其他框架中的context相同为我们以供了一些核心操作工具。
private Context context;
public FileService(Context context) {
this.context = context;
}
public void saveToSDCard(String filename, String content) throws Exception{
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream outStream = new FileOutputStream(file);
outStream.write(content.getBytes());
outStream.close();
}
}
public void save(String filename, String content) throws Exception{
FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_PRIVATE);
outStream.write(content.getBytes());
outStream.close();
}
然后再向工程中添加FileButtonOnClickEvent.java:
package com.jbridge.event;
import com.jbridge.file.R;
import com.jbridge.service.FileService;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class FileButtonOnClickEvent implements OnClickListener {
// 通过activity获取其他控件
private Activity activity;
// 通过FileService读写文件
private FileService fileService;
// 打印信息用的标签
private static final String TAG = "FileButtonOnClickEvent";
public FileButtonOnClickEvent(Activity activity) {
this.activity = activity;
this.fileService = new FileService(activity);
}
public void onClick(View v) {
Button button = (Button) v;
switch (button.getId()) {
case R.id.bt_save:
// 获取文件名
EditText etFileNameS = (EditText) this.activity
.findViewById(R.id.et_file_name);
String fileNameS = etFileNameS.getText().toString();
// 获取文件内容
EditText etFileConS = (EditText) this.activity
.findViewById(R.id.et_file_content);
String fileContentS = etFileConS.getText().toString();
// 保存
try {
this.fileService.save(fileNameS, fileContentS);
// 在窗口中显示一个特效信息框
Toast.makeText(this.activity, R.string.file_save_success,
Toast.LENGTH_LONG).show();
Log.i(TAG, "save file success!");
} catch (Exception e) {
Toast.makeText(this.activity, R.string.file_save_failed,
Toast.LENGTH_LONG).show();
Log.e(TAG, e.toString());
}
break;
case R.id.bt_read:
// 获取文件名
EditText etFileNameR = (EditText) this.activity
.findViewById(R.id.et_file_name);
String fileNameR = etFileNameR.getText().toString();
// 读取文件
try {
String fielContentR = this.fileService.readFile(fileNameR);
EditText etFileConR = (EditText) this.activity
.findViewById(R.id.et_file_content);
etFileConR.setText(fielContentR);
Log.i(TAG, "read file success!");
} catch (Exception e) {
Toast.makeText(this.activity, R.string.file_read_failed,
Toast.LENGTH_LONG).show();
Log.e(TAG, e.toString());
}
break;
default:
break;
}
}
}
public void saveAppend(String filename, String content) throws Exception{// ctrl+shift+y / x
FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_APPEND);
outStream.write(content.getBytes());
outStream.close();
}
public void saveReadable(String filename, String content) throws Exception{// ctrl+shift+y / x
FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_WORLD_READABLE);
outStream.write(content.getBytes());
outStream.close();
}
public void saveWriteable(String filename, String content) throws Exception{// ctrl+shift+y / x
FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_WORLD_WRITEABLE);
outStream.write(content.getBytes());
outStream.close();
}
public void saveRW(String filename, String content) throws Exception{
FileOutputStream outStream = context.openFileOutput(filename,
Context.MODE_WORLD_READABLE+ Context.MODE_WORLD_WRITEABLE);
outStream.write(content.getBytes());
outStream.close();
}
public void savePRW(String filename, String content) throws Exception{
FileOutputStream outStream = context.openFileOutput(filename,
Context.MODE_WORLD_READABLE+ Context.MODE_WORLD_WRITEABLE+Context.MODE_APPEND);
outStream.write(content.getBytes());
outStream.close();
}
public String readFile(String filename) throws Exception{
FileInputStream inStream = context.openFileInput(filename);
byte[] data = readData(inStream);//オテオスチヒホトシ�トカ�ニハ�ン
return new String(data);
}
private byte[] readData(FileInputStream inStream) throws Exception{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len = inStream.read(buffer))!= -1){
outStream.write(buffer, 0, len);
}
outStream.close();
inStream.close();
return outStream.toByteArray();
}
}
- File.rar (48.5 KB)
- 下载次数: 60
发表评论
-
Android 桌面部件
2011-07-06 19:26 1863桌面部件是一种利用AppWidget框架将应用程序的某个部件放 ... -
Android 实时文件夹
2011-07-06 15:38 2852实时文件夹是一种用来显示由某个ContentProvider提 ... -
android 添加桌面快捷方式
2011-07-05 19:20 13281、在桌面创建快捷方式方法: 方法一:通过长按某一个应用程序的 ... -
Android权限详解
2011-07-04 09:43 2238在Android的设计中,资源的访问或者网络连接,要得到这 ... -
Android权限注解
2011-07-04 09:33 3471Android应用程序在使用很多功能的时候必须在Mainife ... -
ListView使用SimpleAdapter加载网络图片
2011-07-02 19:14 7706ListView是一种常见的布局,通过SimpleAdapte ... -
android:layout_gravity 和 android:gravity 的区别
2011-07-02 19:00 2099gravity 这个英文单词是重心的意思,在这里就表示 ... -
横竖屏切换时不销毁当前activity 和 锁定屏幕
2011-07-02 18:58 3622首先在Mainifest.xml的Activity元素 ... -
onSaveInstanceState和onRestoreInstanceState触发的时机
2011-07-02 17:49 2879当某个activity变得“容易”被系统销毁时,该ac ... -
strings.xml文件中提供占位符来格式化数据
2011-07-01 16:16 3222有些朋友可能会动态的修改Android中strings. ... -
ANDROID开机动画分析
2011-05-25 15:40 5925Android 2.0 开机动画文件分析。开机动画文件:boo ... -
Android专栏地址,真的不错啊!!!
2011-05-22 20:22 1651第三极: http://disanji.net/cate ... -
A1200入门DIY
2011-05-22 11:40 0A1200入门DIY 2007-04-16 19:33 ... -
android用户界面数据绑定
2011-05-19 21:25 5279当我们想用合适的方式显示并操作一些数据(如数组,链表,数据库等 ... -
emulator: ERROR: the user data image is used by another emulator. aborting
2011-05-19 13:48 2350今天早上起床,运行项目时报错:Error the use ... -
Android Map demo
2011-04-23 22:24 3391AndroidManifest.xml <?xm ... -
Android Map申请key
2011-04-23 22:02 31151. 首先先要获取你的debug keystore位置 ... -
conversion to dalvik format failed with error 1
2011-04-23 21:52 3470android低版本工程(如1.5)放到高版本环境中(如2.2 ... -
Android GPS基础
2011-04-20 22:14 2777package org.example.locationtes ... -
Android API:Activity.managedQuery()
2011-04-20 19:22 2626描述: 获取一个包含指定数据的 Cursor 对 ...
相关推荐
在Android应用开发中,文件读写权限是至关重要的一个环节,因为这关乎到应用程序能否正常地存储和访问数据。Android操作系统采用严格的权限管理系统,确保应用只能在其被授权的范围内操作。下面将详细介绍Android中...
在Android系统中,文件读写操作是开发过程中常见的任务,涉及到资源文件、数据区文件以及外部存储(如SD卡)的访问。以下是对这些操作的详细说明: 一、资源文件的读取 1. 从resource的raw中读取文件数据: 资源...
本文将深入解析Android文件读写源码,探讨如何在Android应用中创建、读取、修改和删除文件,并涉及权限管理和存储位置的选择。 首先,Android提供了`java.io`和`java.nio`两个包来支持文件操作。在`java.io`包中,`...
在Android系统中,文件读写是一项基础且重要的功能,它允许应用程序存储和检索数据,无论是用户的配置信息、游戏进度还是应用程序内部使用的临时数据。本文将深入探讨如何在Android平台上进行文件读写操作,重点关注...
在Android开发中,文件读写是一项基础且重要的任务,它涉及到数据持久化、资源管理等多个方面。本知识点主要讲解如何在Android中使用自定义的工具类`FileUtils.java`进行文件的读写操作。 首先,Android系统为...
在Android平台上进行文件读写是开发过程中的常见操作,它涉及到对本地文件系统的访问和管理。本源代码示例提供了Android应用中实现文件读写功能的方法。以下是对这些知识点的详细解析: 1. **Android权限管理**:在...
在Android系统中,文件读写操作是开发过程中不可或缺的一部分,无论是保存用户数据、缓存信息还是应用程序内部的数据存储,都需要熟练掌握文件操作技术。本文将深入探讨Android平台上的文件读写操作,包括基本操作、...
在Delphi编程环境中,文件读写是常见的操作,主要用于存储和检索数据。本文将深入探讨如何使用Delphi进行文本文件的读写操作,包括基本概念、常用函数和类,以及实际应用示例。 首先,了解文件系统的基本概念是至关...
Android 文件读写操作方法总结 Android 中的文件读写操作是 Android 应用程序开发中不可或缺的一部分。 Android 文件系统中有多种类型的文件,包括资源文件、数据区文件、SD 卡文件等,每种类型的文件都有其特定的...
对于开发者来说,这意味着需要更新代码以适配这些新规则,尤其是在进行文件读写操作时。本文将详细探讨Android 13的读写权限变更,以及如何在小米14设备上处理txt文件的读写测试。 首先,理解Android 13中的存储...
在Android开发中,文件读写和Wi-Fi检测是两个重要的功能模块。本实例将深入探讨如何在Android设备上实现SD卡文件的操作以及如何检测Wi-Fi的状态。这些功能对于创建涉及数据存储和网络通信的应用至关重要。 首先,...
本篇将重点讲解如何在Android中进行文件读写,包括对内部存储和外部存储(即SDCard)的操作。 首先,了解Android的存储体系至关重要。Android设备有两种主要的存储类型:内部存储和外部存储。内部存储通常用于应用...
以上就是Android平台上的文件读写操作的基本方法和注意事项。通过了解这些知识,开发者可以有效地在Android设备上存储和读取数据。在实际项目中,还需要结合具体需求,考虑数据安全、文件同步、性能优化等方面的问题...
在Android开发过程中,系统资源的实时监控是至关重要的,它能帮助开发者理解应用程序的性能表现,定位并优化可能存在的问题。这款"Android系统资源实时监控工具"是一个轻量级的解决方案,专为开发者设计,提供了丰富...
在Android平台上,与U盘进行文件的读写操作并不像在桌面系统中那样直接,因为Android设备通常不直接支持USB主机模式(Host Mode)。然而,借助第三方库如libaums,我们可以实现这一功能。libaums是Android上一个用于...
### Android 文件读写操作详解 在Android开发中,文件读写是常见的需求之一,尤其当应用需要保存用户数据、配置信息或临时文件时。本文将深入解析如何在Android环境中进行文件读写操作,并通过示例代码展示具体实现...
android中读写xml文件简单demo,可以通过此代码来简单的读取xml配置文件
总结来说,Android的配置文件读写主要涉及SharedPreferences和File操作。对于简单的偏好设置,SharedPreferences提供了方便快捷的方法;而对于复杂数据结构或自定义格式,直接操作文件(如XML或JSON)会更有灵活性。...
在Android平台上,USB设备的检测和文件读写是开发者经常遇到的任务,特别是在移动设备与外部存储设备交互的场景中。本教程将详细讲解如何实现"Android USB检测,文件读写demo",帮助你掌握相关技能。 首先,让我们...