`

玩转Android---组件篇---数据存储之File

阅读更多

我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本文件,PDF文件,音频文件,视频文件和图片等。Android提供了文件读写的方法。

通过Context.openFileInput()方法获得标准JAVA文件输入流(FileInputStream),通过Context.openFileOutput()方法获得标准的java文件输出流(FileOutputStream)。使用Resources.openRawResource(R.raw.DataFile)方法返回InputStream。

 

接下来通过一个小例子来掩饰File读写文件。创建一个Activity,在其中放置两个EditText和连个Button,第一个EditText和Button将EditText的内容写到文件temp.txt文件中。第二个EditText和Button将内容从文件temp.txt中读取出来显示。问价被默认保存在/data/data/package/files下面。

 

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"
    >
	<EditText
		android:id="@+id/edit1"
		android:layout_width="fill_parent"
		android:layout_height="60dip"
	/>
	<Button
		android:id="@+id/button1"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="写入数据"
	/>
	
	<EditText
		android:id="@+id/edit2"
		android:layout_width="fill_parent"
		android:layout_height="60dip"
	/>
	<Button
		android:id="@+id/button2"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="读取数据"
	/>
</LinearLayout>

 

FileTest.java

package org.hualang.file;

import java.io.FileInputStream;
import java.io.FileOutputStream;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class FileTest extends Activity {
    /** Called when the activity is first created. */
	private Button read,write;
	private EditText text1,text2;
	private static final String FILE_NAME="temp.txt";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        write=(Button)findViewById(R.id.button1);
        read=(Button)findViewById(R.id.button2);
        text1=(EditText)findViewById(R.id.edit1);
        text2=(EditText)findViewById(R.id.edit2);
        
        //设置按钮事件监听器
        write.setOnClickListener(new OnClickListener()
        {
        	public void onClick(View v)
        	{
        		//写内容
        		write(text1.getText().toString());
        	}
        });
        
        read.setOnClickListener(new OnClickListener()
        {
        	public void onClick(View v)
        	{
        		//读内容
        		text2.setText(read());
        	}
        });
    }
    //读方法
    private String read()
    {
    	try
    	{
    		//实例化文件输入流对象
    		FileInputStream fis=openFileInput(FILE_NAME);
    		//定义缓存数组
    		byte[] buffer=new byte[fis.available()];
    		//读取到缓冲区
    		fis.read(buffer);
    		return new String(buffer);
    	}catch(Exception e)
    	{
    		e.printStackTrace();
    	}
    	return null;
    }
    //写方法
    private void write(String content)
    {
    	try
    	{
    		//实例化文件输入流
    		FileOutputStream fos=openFileOutput(FILE_NAME,MODE_APPEND);
    		//写内容
    		fos.write(content.getBytes());
    		//关闭文件流
    		fos.close();
    	}catch(Exception e)
    	{
    		e.printStackTrace();
    	}
    }
}

 

运行结果如下:

 

 

 

 

 

  • 大小: 13.2 KB
  • 大小: 13.8 KB
分享到:
评论

相关推荐

    Android-Android-FileBrowser-FilePicker一个Android文件浏览和选择控件

    **Android-FileBrowser-FilePicker** 是一个专为Android平台设计的文件浏览和选择组件,它为开发者提供了方便的文件操作功能,使用户能够在应用程序中浏览、选择和管理本地文件。这个控件对于那些需要集成文件操作...

    Android-android-file-transfer-linux.zip

    Android-android-file-transfer-linux.zip,Android Linux文件传输,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    androidsdk-platforms-android-23.rar

    在这个名为"androidsdk-platforms-android-23.rar"的压缩包中,包含了针对Android 23(也称为Android M,Marshmallow)的SDK平台组件。这一版本的Android引入了许多重要的更新和改进,对开发者的工作流程产生了深远...

    aarch64-linux-android-4.9

    标题中的"aarch64-linux-android-4.9"是一个针对Android平台的交叉编译工具链的标识符,它主要用于在非Android系统(如x86架构的Linux或Windows)上构建适用于Android设备的ARM64架构(aarch64)的应用程序和库。...

    android-sdk\platforms\android-21

    在Android开发领域,`android-21`是一个重要的版本,代表了Android操作系统的API级别21,也称为Android Lollipop(5.0)。这个版本带来了许多显著的变化和更新,为开发者提供了新的特性和功能。下面将详细介绍`...

    Unity与Android交互的适配包android-support-v4.jar,android-support-v7-appcompat.jar

    1、android-support-v4.jar,android-support-v7-appcompat.jar,非常实用的jar文件,不可缺少,兼容Android 对应版本,包中包含类许多我们可以调用的,如widget、view、util等等。 2、导入Unity或者Android Studio...

    android-file-transfer-linux:适用于Linux的Android文件传输

    适用于Linux的Android文件传输(FreeBSD和Mac OS X!... MacOSX Homebrew: brew cask install whoozle-android-file-transfer或brew cask install whoozle-android-file-transfer-nightly 支持我 如果您想帮助我进

    android-support-v4 基本android7.0

    在Android Studio中,你需要确保迁移项目到AndroidX,因为`android-support-v4`已经被替换为`androidx.core:core:版本号`,并且`ViewPager`现在是`androidx.viewpager.widget.ViewPager`,`FileProvider`是`androidx...

    android-sdk-sources-android-27.rar

    当我们谈论 "android-sdk-sources-android-27.rar" 这个压缩包时,我们实际上是在讨论Android SDK中的源代码,这是对Android系统内核和框架层进行深入学习和研究的关键资源。Android 27 对应的是API级别27,也就是...

    安卓android-serialport-api 串口demo源代码.zip

    安卓android-serialport-api 串口demo源代码 public class SerialPort { private static final String TAG = "SerialPort"; /* * Do not remove or rename the field mFd: it is used by native method close...

    platforms/android-29/android.jar

    替换sdk路径下/platforms/...解决替换后报错:Failed to transform file 'android.jar' to match attributes {artifactType=android-mockable-jar, returnDefaultValues=false} using transform MockableJarTransform

    Android代码-Android-SpinKit

    Android-SpinKit &gt;Android loading animations(I wrote a android edition according SpinKit) Preview Gradle Dependency Add the JitPack repository to your build file ```gradle allprojects { ...

    Android/SDK/Platforms/android-34-ext8

    "ext8"可能是指该版本支持扩展的文件系统类型,如F2FS(Flash-Friendly File System)或EXT4,这些文件系统在处理大量数据时提供了更好的性能和稳定性。 **Android SDK Platforms** Android SDK Platforms包含了...

    宝利通rpm-android-phone-release-3.7-64806.apk

    宝利通rpm-android-phone-release-3.7-64806移动应用程序是一个易于使用的视频系统,提供优质的音频和视频体验。与专有应用程序不同,RealPresence移动应用程序是基于标准的,可扩展您组织的视频网络,使您在任何...

    Android-FileDownloader一个简单的断点下载工具类

    断点下载是Android-FileDownloader的关键功能之一,它允许用户在任意时刻暂停下载,并在稍后的时间继续从上次中断的位置开始下载,而不是重新开始整个文件。这大大提高了用户体验,尤其是在下载大型文件时。实现这一...

    platforms/android-28/android.jar

    替换sdk路径下/platforms/...解决替换as后报错:Failed to transform file 'android.jar' to match attributes {artifactType=android-mockable-jar, returnDefaultValues=false} using transform MockableJarTransform

    Android-SelectFile一个android图片选择器

    【Android-SelectFile一个android图片选择器】 在Android应用开发中,用户经常需要选择图片进行上传、编辑或显示。为了方便这一操作,开发者通常会创建一个图片选择器组件。"Android-SelectFile"是一个专为Android...

    解决Android-sdk安装问题说明

    ### 解决Android-SDK安装问题说明 在进行Android应用开发时,遇到的第一道门槛往往就是正确配置Android SDK环境。本文将详细介绍如何解决Android-SDK安装过程中的一些常见问题,并提供具体的解决方案,帮助初学者...

    platforms/android-29/android.jar 解决在android studio 看源码部分类报红

    替换sdk路径下/platforms/...解决替换后报错:Failed to transform file 'android.jar' to match attributes {artifactType=android-mockable-jar, returnDefaultValues=false} using transform MockableJarTransform

    Android代码-File-Loader

    File Loader Android library for downloading, saving/caching and retrieving any type of files ( image, video, pdf, apk etc ) easily. Download Gradle: repositories { mavenCentral() maven { url '...

Global site tag (gtag.js) - Google Analytics