android 内部文件读取

Android 文件管理方法

Android使用的是基于Linux的文件系统,对于文件的訪问和管理是通过权限设置来限制的.

在Linux系统中,文件权限分别描写叙述了创建者、同组用户和其它用户对文件的操作限制。

x表示可运行,r表示可读,w表示可写,d表示文件夹,-表示普通文件。

产生这种文件权限与程序人员设定的

Android 存储文件的类型

(内部存储)程序开发者能够建立和訪问程序自身的私有文件;

(资源存储)能够訪问保存在资源文件夹中的原始文件和XML文件;

(外部存储)能够在SD卡等外部存储设备中保存文件

Android系统同意应用程序创建仅可以自身訪问的私有文件,文件保存在设备的内部存储器上,在Linux系统下的/data/data/<package name>/files文件夹中

Android系统不仅支持标准Java的IO类和方法,还提供了可以简化读写流式文件过程的函数

FileOutputStream openFileOutput(String filename int mode)

FileInputStream openFileInput(String filename)

參数文件不同意包括描写叙述路径的斜杠(其存储位置固定)

訪问模式:

MODE_PRIVATE 私有模式。缺陷模式,文件仅可以被文件创建程序訪问,或具有同样UID的程序訪问。

MODE_APPEND 追加模式,假设文件已经存在。则在文件的结尾处加入新数据。

MODE_WORLD_READABLE 全局读模式,同意不论什么程序读取私有文件。

MODE_WORLD_WRITEABLE 全局写模式。同意不论什么程序写入私有文件。

三个主要的读方法

abstract int read() :读取一个字节数据。并返回读到的数据。假设返回-1,表示读到了输入流的末尾。

int read(byte[] b) :将数据读入一个字节数组,同一时候返回实际读取的字节数。假设返回-1,表示读到了输入流的末尾。

int read(byte[] b, int off, int len) :将数据读入一个字节数组。同一时候返回实际读取的字节数。

假设返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置。len指定读取的最大字节数。

其他方法

long skip(long n) :在输入流中跳过n个字节,并返回实际跳过的字节数。

int available() :返回在不发生堵塞的情况下,可读取的字节数。

void close() :关闭输入流,释放和这个流相关的系统资源。

void mark(int readlimit) :在输入流的当前位置放置一个标记,假设读取的字节数多于readlimit设置的值,则流忽略这个标记。

void reset() :返回到上一个标记。

boolean markSupported() :測试当前流是否支持mark和reset方法。假设支持,返回true,否则返回false。

三个主要的写方法

abstract void write(int b) :往输出流中写入一个字节。

void write(byte[] b) :往输出流中写入数组b中的全部字节。

void write(byte[] b, int off, int len) :往输出流中写入数组b中从偏移量off開始的len个字节的数据。

其他方法

void flush() :刷新输出流,强制缓冲区中的输出字节被写出。

void close() :关闭输出流,释放和这个流相关的系统资源。

对文件和流的操作easy引发异常,所以必需要用try-catch语句

主要核心代码

首先是新建一个文件

private final String FILE_NAME = "Myfile01.txt";

写文件

FileOutputStream fos = null;//声明一个全局变量

//注意以下的语句要进行抛异常处理FileNotFoundException e。IOException e

fos = openFileOutput(FILE_NAME,Context.MODE_PRIVATE);//写流式文件过程的

函数。这里的权限是私有的

String text = entryText.getText().toString();//把输入的内容转化为字符串

fos.write(text.getBytes());//把转化为字符串的内容转化为字节,然后写入

//以下语句写在finally里面

fos.flush();//把缓存里的内容写入到文件

fos.close();//关闭流

读文件

FileInputStream fis = null;//定义一个全局变量
fis = openFileInput(FILE_NAME);//打开要读取的文件
if (fis.available() == 0){//推断文件是否为空。为空就直接返回
 return;
}
byte[] readBytes = new byte[fis.available()];//把文件中的内容转化为字节
while(fis.read(readBytes) != -1){//读文件。直到读到最后
}
String text = new String(readBytes);//把读到的字节转化为字符串

读文件的另外一种方法

String path = "/data/data/cn.itcast.file/files/writeable.txt";//得到文件路径
  File file = new File(path);//创建一个文件对象
  FileInputStream inStream = new FileInputStream(file);//读文件
  byte[] buffer = new byte[1024];//缓存
  int len = 0;
  ByteArrayOutputStream outStream = new ByteArrayOutputStream();
  while( (len = inStream.read(buffer))!= -1){//直到读到文件结束
   outStream.write(buffer, 0, len);
  }
  byte[] data = outStream.toByteArray();//得到文件的二进制数据
  outStream.close();
  inStream.close();
  Log.i(TAG, new String(data));
时间: 2024-11-05 14:53:15

android 内部文件读取的相关文章

二十、Android -- SDcard文件读取和保存

背景                                                                                            一些东西可以存在自己定义的文件里面,这个文件可以在手机中,可以在SD卡中,在这里就主要介绍一下在SD卡中的存储和读取吧~ 代码                                                                                            

Android–SDcard文件读取和保存

背景                                                                                            一些东西可以存在自己定义的文件里面,这个文件可以在手机中,可以在SD卡中,在这里就主要介绍一下在SD卡中的存储和读取吧~ 代码                                                                                            

API内部文件读取

直接上代码吧 尝试将项目复制后建一个新的项目,结果总是有问题,不过可以把原项目转换为新项目,方法如下: 1.项目右键在android tools 有个 rename application package选项,这是改包名的,改完这个就是两个不同的应用 2.要想两个工程共存在Eclipse下的话,就还要选中项目 按F2 就可以改 项目的名字. 主要解决在上一个文档中,路径data/data/com.swust.intern这个不能写错的问题,所以直接使用谷歌提供的API获取环境变量,防止读错. g

Android简单介绍SharedPreference,内部文件,sdcard数据存储

SharedPreference 以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中 使用方式 创建对象的方式有三种 Context 的 getSharedPreferences() Activity 的 getPreferences() PreferenceManager 的 getDefaultSharedpreferences() 获取数据 sharedPrefs.getXXX()方法,如getInt(),getString()等 储存数据

Android内部存储文件之数据读取

1:Android开发中,离不开对文件的操作,因为文件可以存储大量数据,掌握相关技术可以为开发带来许多便利,一下便是我们的应用在手机或者模拟器上的内部存储位置. 2:通过一个简单的程序实现对android应用的内部文件的读取操作,页面如下: 3:示例代码如下: package cativity.cyq.readwriteintemaldata; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; i

Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)

layout文件: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="ma

android如何保存读取读取文件文件保存到SDcard

android如何保存读取读取文件文件保存到SDcard 19. 三 / android基础 / 没有评论 本文来源于www.ifyao.com禁止转载!www.ifyao.com 上图为保存文件的方法体. 上图为如何调用方法体保存数据. 上面的截图介绍了,文件保存的基本内容. 路径也可以更改. 将内容保存到文件介绍完毕. 本文来源于www.ifyao.com禁止转载!www.ifyao.com 读取文件方法体,将方法返回值传给控件即可. 保存文件的四种操作模式 将文件保存到手机的SDcard路

Android之ProgressBar读取文件进度解析

ProgressBar进度条, 分为旋转进度条和水平进度条,进度条的样式根据需要自定义,之前一直不明白进度条如何在实际项目中使用,网上演示进度条的案例大多都是通过Button点 击增加.减少进度值,使用方法incrementProgressBy(int),最简单的做法是在xml布局文件中放置ProgressBar空间,然 后再MainActivity中触发事件后执行incrementProgressBy(int),代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

eclipse中如何查看一个android模拟器的内部文件

eclipse中如何查看一个android模拟器的内部文件,有时要在其中添加一个文件夹或是什么的,要手动的做这件事,而不能够用代码去完成时,就要用这个方法了. 1.首先,打开一个安卓模拟器. 2.这个时候,点击eclipse中DDMS图标,打开android模拟器的控件台. 3.在这里,你就能够看到这个模拟器了,同时它的一些状态,你也是可以看到的. 4.下面就点击右侧file explore就可以看到其中的文件系统了,在这里面,你就可以看到你要的文件了.