`

文件存储openFileOutput和openFileInput

 
阅读更多

android中提供openFileOutput和openFileInput进行读写,两个方法和SharedPreference相类似,但是要注意的是Sharedpreference在读取数据的时候如果为空,则读取默认值,而文件操作中则没有此内容,

此示例,可以将用户输入的内容存储到默认位置和SD卡中,并且可以读出数据

package com.pms.myfile;

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

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MyFile extends Activity {

/*声明控件对象*/
private Button bt_save, bt_saveto, bt_read;
private TextView tv;
private EditText et;
private String et_str;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

/*得到控件对象*/
bt_save = (Button) findViewById(R.id.bt_save);
bt_saveto = (Button) findViewById(R.id.bt_saveto);
bt_read = (Button) findViewById(R.id.bt_read);
tv = (TextView) findViewById(R.id.tv);
et = (EditText) findViewById(R.id.et);

/*监听点击事件*/
bt_save.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
et_str = et.getText().toString();//取得EidtText的内容
write(et_str);//写入
}
});

bt_read.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
read();//读取
}
});

bt_saveto.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
et_str = et.getText().toString();//取得EidtText的内容
writeToSd(et_str);//写入到sd卡
}
});
}
/**将数据写入系统默认位置
* @param text
* 要保存的字符
*/
public void write(String text)
{
try {
//通过openFileOutput方法得到一个输出流,方法参数为创建的文件名(不能有斜杠),操作模式
FileOutputStream fos=this.openFileOutput("myfirst.txt",Context.MODE_WORLD_READABLE);
fos.write(text.getBytes());//写入
fos.close(); // 关闭输出流
//弹出Toast消息
Toast.makeText(MyFile.this,"保存成功",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e){
e.printStackTrace();
}
}

/**将数据写入到sd卡中
*
* @param text
* 要保存的字符
*/
public void writeToSd(String text)
{
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File sdCardDir = Environment.getExternalStorageDirectory();//获取SDCard目录
File sdFile = new File(sdCardDir, "myfirstsd.txt");

try {
FileOutputStream fos = new FileOutputStream(sdFile);
fos.write(text.getBytes());
fos.close();
Toast.makeText(MyFile.this, "成功保存到sd卡", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}
/**读取文件*/
public void read()
{
try {
FileInputStream fis=this.openFileInput("myfirst.txt"); //获得输入流
//用来获得内存缓冲区的数据,转换成字节数组
ByteArrayOutputStream stream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int length=-1;
while((length=fis.read(buffer))!=-1) {
stream.write(buffer,0,length);//获取内存缓冲区中的数据
}
stream.close(); //关闭
fis.close();
tv.setText(stream.toString()); //设置文本控件显示内容
Toast.makeText(MyFile.this,"读取成功",Toast.LENGTH_LONG).show();//弹出Toast消息
} catch (FileNotFoundException e) {
Toast.makeText(MyFile.this, "文件不存在", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
catch (IOException e){
e.printStackTrace();
}
}


<!-- 在SDCard中创建与删除文件的权限 -->

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 往SDCard写入数据的权限 -->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

}

分享到:
评论

相关推荐

    android数据存储之文件存储方法

    文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的。 概述 文件存取的核心就是输入流和输出流。 Android文件的操作模式 文件的相关...

    文件存储及读写文件

    程序简单示范了读写应用程序数据文件夹内的文件,文件地址是/data/data/org.crazyit.io/files/;使用openFileOutput和openFileInput两个方法,使用android studio

    Android文件存储方式之openFileOutput与获取数据

    在Android应用开发中,文件存储是一项基础且重要的任务,它涉及到数据持久化,使得应用程序在关闭后仍能保存用户的数据或状态。本篇文章主要探讨的是Android中的`openFileOutput()`方法以及如何通过它来存储和读取...

    Android文件存储方式之openFileOutput与获取数据(更新版)

    本篇文章将深入探讨Android中的两种主要本地文件存储方式之一:`openFileOutput()`方法,以及如何通过该方法存储和获取数据。`openFileOutput()`是Android SDK提供的一个便利方法,用于在应用私有的数据目录下创建或...

    文件存储demo

    "文件存储demo"这个主题主要聚焦于Android系统中的本地文件存储机制,特别是通过`Context`类提供的`openFileOutput`和`openFileInput`方法进行读写操作。下面将详细阐述这两个方法以及相关的文件存储概念。 首先,...

    Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储)

    内部文件存储用于保存应用私有的数据,这些文件不会被其他应用访问。内部存储的数据存储在应用的私有目录下,当应用卸载时,这些文件也会被自动删除。使用内部文件存储主要有以下几个步骤: - 通过Context的...

    安卓保存注册信息到文件

    1. 文件操作:Android提供了多种方式来读写文件,如`java.io`包中的File类和FileWriter,以及`android.content.Context`提供的openFileOutput和openFileInput方法。通常,我们会选择将用户注册信息保存在应用的私有...

    android txt文件保存读取操作

    在Android平台上,对TXT文件进行保存和读取是常见的数据持久化操作,尤其适用于存储少量结构化的文本数据。本文将详细讲解如何在Android应用中实现TXT文件的保存和读取功能,以及涉及到的相关知识点。 首先,我们...

    Android项目设计与开发:基本文件存储.ppt

    基本文件存储 创建一个文件(写操作): openFileOutput() 写操作文件打开方式 FileOutputStream 安卓文件输出流 读取文件内容 openFileInput() 读操作文件打开方式 FileInputStream 安卓文件输入流 实验 有序广播...

    Android数据持久化之I/O操作详解

    在Android系统中,使用openFileOutput和openFileInput方法可以实现文件的基本操作。openFileOutput方法用于将数据写入到文件中,而openFileInput方法用于从文件中读取数据。 openFileOutput方法的使用示例如下: ``...

    android文件存储

    在Android应用开发中,文件存储是一种常见的数据持久化方法,尤其适用于存储小量的数据,例如...通过理解并熟练运用上述知识,开发者可以在Android应用中有效地实现文件存储功能,为用户提供稳定的数据保存和恢复体验。

    Android 逐行写入和读取文本文件Demo

    在Android应用开发中,处理文本文件是常见的任务之一,无论是保存用户数据、日志记录还是配置文件。本示例将详细介绍如何使用Android Studio ...通过实践和理解这些示例,开发者能够更好地处理应用中的文件存储需求。

    Android内部文件存储示例

    在Android应用开发中,内部文件存储是保存应用私有数据的一种常见方式。这些文件对其他应用不可见,且随着应用的卸载而被删除,确保了数据的安全性和隐私性。以下是对Android内部文件存储的详细解释,以及如何进行...

    Android的文件存储

    在Android系统中,文件存储是应用管理数据的重要方式之一。Android提供了多种文件存储方式,以适应不同的需求,如内部存储、外部存储、SQLite数据库、SharedPreferences等。本课程将重点探讨这些存储方法及其应用...

    android studio文件存储和sharedPreference存储

    以上就是在Android Studio中使用SharedPreferences和文件存储实现QQ登录信息保存的基本步骤。在实际开发中,还应考虑数据的安全性,例如对敏感信息进行加密处理,以及处理可能出现的异常情况,确保程序的稳定性和...

    android 文件存取

    android系统的文件存储的内部存储 Android系统允许应用程序创建仅能够自身访问的私有文件,文件保存在设备的内部存储器上,在Linux系统下的/data/data/&lt;package name&gt;/files目录中 Android系统不仅支持标准Java的IO...

    Android开发——文件存储

    本文将深入探讨如何在Android中实现基于文件存储的日程安排应用,包括如何在机身内存或SD卡中保存数据文件,以及如何进行添加、删除操作。 首先,Android提供了多种文件存储方式,包括内部存储、外部存储(SD卡)和...

    Android数据持久化之读写SD卡中内容的方法详解

    Android数据持久化之读写SD卡中的内容可以使用openFileOutput和openFileInput方法、读取assets目录中的文件和读写SD卡中的内容等方法。每种方法都有其优缺,开发者可以根据实际情况选择适合的方法。

    04用API读写内部存储文件

    这篇教程将聚焦于如何使用Android API来读取和写入内部存储文件。内部存储是应用程序私有的存储区域,数据对其他应用不可见,提供了安全的数据存储。 一、Android内部存储概述 Android系统为每个应用程序分配了专属...

    Android中实现保存和读取文本文件到内部存储器(实现简易的记事本为例)示例代码.zip

    例如,`openFileOutput()`和`openFileInput()`用于在内部存储器中创建和读取文件,而`deleteFile()`用于删除文件。 1. **保存文本文件到内部存储器**: - 首先,你需要获取到`Context`对象,通常在Activity或...

Global site tag (gtag.js) - Google Analytics