Android---35---openFileInput、openFileOutput获取手机内存中的数据

openFileOutput和openFileInput 获取手机内存中的文件而不是SD卡中的。

Context提供了两个方法来打开本应用程序的数据文件夹里的文件I/O流。

openFIleInput(String name):name文件对应的输入流

openFileOutput(String name,int mode):name文件对应的输出流

其中输出流中的第二个参数表示打开文件的模式,也可以称作权限:

MODE_PRIVATE:该文件只能被当前程序读写

MODE_APPEND:以追加的方式打开该文件,可以追加内容

MODE_WORLD_READABLE:该文件中的内容可以被其他程序读取

MODE_WORLD_WRITEABLE:该文件中的内容可以被其他程序读、写。

除此之外,Context还提供了如下几个方法来访问应用程序的数据文件夹:

getDir(String name,int mode):在应用程序的数据文件夹下获取或创建name对应的子目录

File getFilesDir():获取应用程序的数据文件夹的绝对路径

String[] fileList ():返回该应用程序的数据文件夹下的全部文件

deleteFile(String ): 删除该应用程序的数据文件夹下的指定文件

public class MainActivity extends Activity {

	private EditText et;
	private Button saveButton, readButton;
	private TextView show;

	private boolean MyWrite() {
		try {
			FileOutputStream fos = openFileOutput("data",
					Context.MODE_WORLD_READABLE);

			String content = et.getText().toString();
			fos.write(content.getBytes());
			fos.flush();
			fos.close();
			Toast.makeText(MainActivity.this, "成功", 1).show();
			return true;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	private boolean MyRead() {
		try {
			FileInputStream fis = openFileInput("data");
			byte buff[] = new byte[1024];
			StringBuffer sb = new StringBuffer();
			int hasread = 0;
			while ((hasread = fis.read(buff)) != -1) {
				sb.append(new String(buff));
			}
			fis.close();
			show.setText(sb.toString());
			Toast.makeText(MainActivity.this, sb.toString(), 1).show();
			return true;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		et = (EditText) findViewById(R.id.edittext);
		saveButton = (Button) findViewById(R.id.save);
		readButton = (Button) findViewById(R.id.red);
		show = (TextView) findViewById(R.id.show);

		saveButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				MyWrite();
			}
		});
		readButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				MyRead();
			}
		});
	}

}
时间: 2024-10-05 14:01:22

Android---35---openFileInput、openFileOutput获取手机内存中的数据的相关文章

Android学习笔记-获取手机内存,SD卡存储空间。

前面介绍到如何保存数据到手机内存或者SD卡,但是问题是,在保存以前,我们还需要对他们的空间(可用空间),进行判断,才可以进行后续操作,所以,本节我们就介绍如何获取手机内存以及Sd卡的空间. //这时获取手机内存的 // File path = Environment.getDataDirectory(); //这时获取SD卡的空间 File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(pat

Android下将图片载入到内存中

Android的系统的标准默认每一个应用程序分配的内存是16M.所以来说是很宝贵的,在创建应用的时候要尽可能的去节省内存,可是在载入一些大的文件的时候,比方图片是相当耗内存的,一个1.3M的图片,分辨率是2560X1920(宽X高)图片当载入到手机内存的时候就会请求19M的一块内存,这是远远超出了系统自带的内存空间,这时候应用程序就会挂掉,所以我们要进行图片的缩放处理,以下我就来带大家创建一个用来图片缩放的应用: 应用效果图例如以下: 核心代码的实现: package com.examp.loa

安卓实现读取手机内存中的所有音乐

读取手机内存中的音乐信息需要做如下几步: 1)创建一个XML文件,存放获取到的信息,使用ListView控件 2)创建一个新的XML文件,对LIstView中的item对象进行布局 3)需要创建一个Music类用于存放需要获取的Music的主要信息 4)需要创建一个帮助类,用于获取手机中的音乐信息,并通过一个集合类传递获取到的信息 5)创建一个自定义适配器,用于加载ListView的每个子Item 6)实现对数据的加载,并返回到用户界面 主要的代码实现如下: 一.帮助类模块 public Arr

简单了解:在内存中的数据

内存原理 开启电源,启动BIOS,CPU工作,调用内存,内存跟硬盘索要资源 当你点击一个文件的时候数据经过数据总线传达到CPU,CPU发送指令到内存,内存那里会跟硬盘沟通,问他有没有这个东西,他说有,你就会看到这个文件夹里面是什么东西. (Xee:RAM 是随机存取存储器,它的特点是易挥发性,即掉电失.--妈蛋,难怪一断电,我的东西没保存,就找不到了-- 既然内存是用来存放当前正在使用的(即执行中)的数据和程序,那么它是怎么工作的呢?我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态

CAD.NET中获取命名字典中的数据方法

语句如下: dicts.GetAt(Position).GetXrecord("年薪").First().Value 其中 DBDictionary dicts=(DBDictionary)trans.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForRead); trans: using (Transaction trans=db.TransactionManager.StartTransaction()) CAD.NET中获取命名

ffmpeg 从内存中读取数据

http://blog.csdn.net/leixiaohua1020/article/details/12980423 ffmpeg一般情况下支持打开一个本地文件,例如"C:\test.avi" 或者是一个流媒体协议的URL,例如"rtmp://222.31.64.208/vod/test.flv" 其打开文件的函数是avformat_open_input(),直接将文件路径或者流媒体URL的字符串传递给该函数就可以了. 但其是否支持从内存中读取数据呢?这个问题困

REDIS 勿删除rdb文件如何从内存中恢复数据

redis的数据是在内存中的,如果redis重启或间隔一定时间redis会把内存保存在硬盘上的一个.rdb文件中做持久化,以前刚刚开始用redis的时候,不小心把.rdb文件给误删除了,但你只要正常save或者重启redis,rdb文件会自动生成. 但随着线上业务增加,redis的数据会越来越大,在用这种方法会出现错误,不能把内存中的数据保存到rdb文件中,这时需要只要做以下几步,就可以恢复rdb文件了: 进入到redis端口,info查看配置信息 进入redis端口 执行 config set

[爬虫]通过url获取连接地址中的数据

1. 要想获取指定连接的数据,那么就得使用HtmlDocument对象,要想使用HtmlDocument对象就必需引用using HtmlAgilityPack; 2. 详细步骤如下: ????步骤一: ????????获取链接地址内容: ????????var html =HttpDownLoadHelper.GetUtf8Html("链接地址"); HttpDownLoadHelper类中的内容如下: public class HttpDownLoadHelper { /// &l

【Android开发经验】如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库(转)

转载请注明出处: http://blog.csdn.net/zhaokaiqiang1992 今天一打开博客,发现一位朋友给我发了一封私信,请教下面的问题,所以特写此文章,为其解惑. 从这位朋友的提问中,我们需要了解下面的这些问题,才能给他很好的解答: (1)如何获取手机里所有歌曲的信息? (2)在歌曲文件发生改变,比如增删操作之后,如何及时的更新媒体库,从而获取到最新的歌曲信息? (3)在4.4版本之后,扫描sd卡,更新媒体库的操作发生变化了吗? 下面,我将就以上三个问题,进行解答. (1)如