`
白色彗星isme
  • 浏览: 35330 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android 文件存储--内部存储的例子

阅读更多
                                 Android 文件存储--内部存储的例子

1)新建Android 项目,项目名称:DemoInternalStorage
2) 在继承于Activity的类中编写相应代码,代码如下所示:
/*
* Copyright (C) Mesada Technologies Co., Ltd. 2005-2010.
* All rights reserved.
*
* This software is the confidential and proprietary information
* of Mesada Technologies Co., Ltd. ("Confidential Information").
* You shall not disclose such Confidential Information and shall
* use it only in accordance with the terms of the license agreement
* you entered into with Mesada.
*/
package com.mesada.demo;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
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;

/**
* This is a demo about file storage.
*
* @author Xiaolong Long
* @date 2010-12-30
* @version 1.0
*/
public class MainActivity extends Activity implements OnClickListener {
private static final String TAG = "MainActivity";
private static final boolean mIsPrintInfo = true;

private static final String FILENAME = "temp.txt";

EditText mMsgView;
Button mSave;
Button mPrint;
Button mCancel;

boolean mIsLegal = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
if (mIsPrintInfo)
Log.i(TAG, "onCreate()...");

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupControlers();

mSave.setEnabled(false);
MsgTextWater msgTextWater = new MsgTextWater();
mMsgView.addTextChangedListener(msgTextWater);

mSave.setOnClickListener(this);
mPrint.setOnClickListener(this);
mCancel.setOnClickListener(this);
}

/**
*
* Find the views that were identified by the id attributes from the XML.
*
* @param
* @return
* @date 2010-12-30
* @author Xiaolong Long
*/
private void setupControlers() {
if (mIsPrintInfo)
Log.i(TAG, "setupControlers()...");

mMsgView = (EditText) findViewById(R.id.msg);
mSave = (Button) findViewById(R.id.saveMsg);
mPrint = (Button) findViewById(R.id.printMsg);
mCancel = (Button) findViewById(R.id.cancel);
}


/**
*
* Find the views that were identified by the id attributes from the XML.
*
* @param
* @return
* @date 2010-12-30
* @author Xiaolong Long
*/
private void setupControlers() {
if (mIsPrintInfo)
Log.i(TAG, "setupControlers()...");

mMsgView = (EditText) findViewById(R.id.msg);
mSave = (Button) findViewById(R.id.saveMsg);
mPrint = (Button) findViewById(R.id.printMsg);
mCancel = (Button) findViewById(R.id.cancel);
}

public void onClick(View v) {
if (mIsPrintInfo)
Log.i(TAG, "onClick()...");

// Returns this view's identifier.
int id = v.getId();
switch (id) {
case R.id.saveMsg:
try {
saveMsg();
Toast.makeText(MainActivity.this, R.string.success_write,
Toast.LENGTH_SHORT).show();
mMsgView.setText("");
} catch (IOException e) {
Log.e(TAG,
"failed to save the content to the file which called temp.txt",
e);
Toast.makeText(MainActivity.this, R.string.failed_write,
Toast.LENGTH_SHORT).show();
}
break;
case R.id.printMsg:
try {
mMsgView.requestFocus();
mMsgView.setText(getMsg());
} catch (IOException e) {
Log.e(TAG,
"failed to read a file from internal storage which called temp.txt",
e);
Toast.makeText(MainActivity.this, R.string.failed_read,
Toast.LENGTH_SHORT).show();
}
break;
case R.id.cancel:
finish();
break;
default:
break;
}
}
/**
*
* To create and write a file to the internal storage.
*
* @param
* @return
* @date 2010-12-30
* @author Xiaolong Long
*/
private void saveMsg() throws IOException {
String msg = String.valueOf(mMsgView.getText());
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_APPEND);
// To create and write a private file to the internal storage:
fos.write(msg.getBytes("utf-8"));
fos.flush();
fos.close();
}

/**
* To read a file from internal storage.
*
* @param
* @return
* @date 2010-12-30
* @author Xiaolong Long
*/
private String getMsg() throws IOException {
FileInputStream fis = openFileInput(FILENAME);
int length = FILENAME.length();
byte[] buffer = new byte[length];

ByteArrayOutputStream bos = new ByteArrayOutputStream();
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
fis.close();
bos.close();
return bos.toString();
}
class MsgTextWater implements TextWatcher {

public void afterTextChanged(Editable s) {

}

public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}

public void onTextChanged(CharSequence s, int start, int before,
int count) {
mIsLegal = validate(s);
if (mIsLegal) {
mSave.setEnabled(true);
return;
}
mSave.setEnabled(false);
}

/**
*
* To check the view if legal.
*
* @param
* @return
* @date 2010-12-30
* @author Xiaolong Long
*/
private boolean validate(CharSequence s) {
String ss = s.toString();
if (!"".equals(ss)) {
return true;
}
return false;
}
}
}
3)main.xml 文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/enter_msg" />
<EditText
android:id="@+id/msg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></EditText>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="right">
<Button
android:id="@+id/saveMsg"
android:text="@string/savemsg"
android:layout_width="180px"
android:layout_height="wrap_content"></Button>
<Button
android:id="@+id/printMsg"
android:text="@string/printmsg"
android:layout_width="145px"
android:layout_height="wrap_content"></Button>
<Button
android:id="@+id/cancel"
android:text="@string/cancel"
android:layout_width="145px"
android:layout_height="wrap_content"></Button>
</LinearLayout>
</LinearLayout>

4)AndroidMainfest.xml 文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mesada.demo"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="8" />

</manifest>
5)完成,顺便上传截图:

  • 大小: 29.8 KB
分享到:
评论
2 楼 aa87963014 2011-03-27  
...你这存的是什么? text?就这个?
1 楼 cqllang 2011-03-23  
代码还是格式一下撒

相关推荐

    aws-android-sdk-1.0.3下载

    aws-android-sdk-1.0.3里是使用亚马逊云端服务端的sdk包 里面有几个例子,将其添加到新建的android项目中可以了解其内部实现原理 例子囊括了aws的各种存储,文件,db,队列,等等

    Android-I-Jetty服务器部署例子代码

    注意,由于Android的安全限制,我们不能直接访问内部存储的文件,所以我们将资源基目录设置为`file:///android_asset/`,这是一个可以在运行时访问的公共目录。 现在,当你的Android应用运行时,调用`JettyServer`...

    Android-SharedPreferences-小小例子

    描述中提到,这是一个实现Android存储数据的例子,并且包含了实际运行的效果图和注释清晰的代码。这表明开发者已经编写了一个可运行的应用,该应用展示了如何在Android环境中使用`SharedPreferences`,并且通过截图...

    Android-将logcat日志存储到文件中日志量较大的情况下方便查看

    在这个例子中,日志被保存到了SD卡上的logs.txt文件。请注意,为了能在外部存储器写入文件,你需要在AndroidManifest.xml中添加`WRITE_EXTERNAL_STORAGE`权限: ```xml &lt;uses-permission android:name="android....

    android开发--访问网络,保存文件,http访问

    Android提供了多种方式来保存文件,如内部存储、外部存储和SQLite数据库。内部存储适合保存应用私有数据,外部存储用于共享文件。以下是一个保存文本到内部存储的例子: ```java String fileName = "myfile.txt"; ...

    Android 文件创建 存储 源码

    在Android系统中,文件的创建和存储是应用程序开发中不可或缺的一部分。本文将深入探讨Android文件创建、存储的源码实现,以及如何有效地管理和操作本地文件。 1. **Android 文件系统概述** Android采用Linux内核...

    android-quickstart-example-master_Quick_android_productionlni_

    6. **assets**目录(如果存在): 可用于存储原始数据文件,如音频、文本文件等,这些文件会被原封不动地打包到APK中。 7. **proguard-rules.pro**(如果存在): 用于开启代码混淆,提高应用的安全性和性能优化。 ...

    适用于虚拟机安装的安卓镜像,android-x86-64-8.1-rc1.iso

    标题中的“android-x86-64-8.1-rc1.iso”是一个基于x86架构,并且针对64位系统的Android操作系统镜像文件,版本为8.1的候选发布版(Release Candidate 1)。这个镜像是为了在虚拟机环境中运行Android系统而设计的,...

    moko365_android-framework-design-porting-2_2010-05-14

    从给定的文件标题“moko365_android-framework-design-porting-2_2010-05-14”以及描述中,我们可以解读出这是一份关于Android框架设计移植的技术文档,创建于2010年5月14日。这份文档主要聚焦在Android框架的设计与...

    android-app-master

    4. **数据持久化**:Android提供了SQLite数据库、SharedPreferences和ContentProvider等方式来保存应用数据。项目中可能有使用这些方法存储和检索数据的示例。 5. **异步操作与线程**:由于Android主线程不能进行...

    Android代码-Android学习例子

    Android提供了多种存储方式,如SQLite数据库、SharedPreferences、文件系统以及ContentProvider。学习如何在这些存储方式中选择合适的,以及如何操作数据库和共享数据,是提升应用功能的重要环节。 除此之外,...

    android经典例子源码-强烈推荐

    4. **数据存储**:Android提供多种数据存储方式,如SharedPreferences、SQLite数据库、文件系统和ContentProvider。源码可能涵盖这些存储方式的使用,有助于理解数据持久化。 5. **异步处理**:Android中的...

    Android应用源码---Jewels宝石消消乐app源码.zip

    4. `Jewels.iml`:这是Android Studio项目文件,包含了项目的元数据,如模块类型、编译器设置、依赖关系等,它是IDE用来理解和管理项目的重要文件。 5. `local.properties`:此文件通常包含本地环境特定的配置,...

    Android-example-ok.rar_android_example andro

    6. **数据存储**:Android提供多种存储方式,包括SharedPreferences(轻量级键值对存储)、SQLite数据库(结构化数据存储)、文件系统以及ContentProvider(共享数据)等。示例可能涵盖其中一种或多种方式。 7. **...

    android-code.rar_android_android 例子_android小例子_asp.net

    在压缩包的文件列表中,“android code”很可能包含了多个Android项目的源代码文件,如.java文件、XML布局文件、AndroidManifest.xml等。开发者可以通过这些代码学习到如何组织项目结构、如何定义布局、如何实现业务...

    Hello.Android.new-code

    6. **数据存储**:Android提供多种方式来存储数据,如SharedPreferences、SQLite数据库、内部存储和外部存储。了解每种方法的适用场景和使用方法对于数据管理至关重要。 7. **Android权限**:Android系统通过权限...

    内部存储

    以下是一个简单的例子,展示如何在内部存储上创建并写入文件: ```java // 获取内部存储的文件目录 File dir = getFilesDir(); // 创建文件 File file = new File(dir, "myFile.txt"); // 打开文件输出流 ...

    Android---网络交互之客户端请求服务端资源.doc

    首先,我们需要在Android设备上处理存储权限,因为我们需要将下载的文件保存到SD卡上。在AndroidManifest.xml中添加以下权限: ```xml &lt;uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILE...

    Android高级编程--源代码

    6.1 Android中的数据保存技术 160 6.2 保存简单的应用程序数据 160 6.2.1 创建和保存preference 160 6.2.2 检索共享的preference 161 6.2.3 保存活动状态 162 6.2.4 为地震查看器创建一个Preference页 165 ...

    Android教程05-应用编程

    SharedPreferences是一种轻量级的键值对存储方式,它以XML文件的形式保存数据。通常用于存储用户偏好设置或者小量配置信息。以下是如何使用SharedPreferences的例子: ```java SharedPreferences settings = this....

Global site tag (gtag.js) - Google Analytics