Android的数据存储操作—FileOutputStream和FileInputStream的学习
来源:互联网 发布:上海 网络信息安全员证 编辑:程序博客网 时间:2024/06/15 21:02
Android的数据存储操作—FileOutputStream和FileInputStream的学习
FileInputStream(& FileOutputStream):
类继承关系: java.lang.Object —> java.io.InputStream (& java.io.OutputStream)
—>java.io.FileInputStream(& FileOutputStream)。
FileInputStream 用于顺序的访问本地文件,用来读取图像数据之类的原始字节流。继承了超类InputStream的 read()方法、close()等方法。创建FileInputStream对象时,我们所指定的文件必须是可见和可读的,创建FileInputStream对象的方法分为以下两种:
第一种:FileInputStream inStream=new FileInputStream("文件名");
第二种:File file=new File("文件名");
FileInputStream inStream=new FileInputStream(file);
我们在Android数据存储操作中xxxActivity.java 文件中创建FileInputStrem对象并指定所操作的文件(当前应用程序的私有文件)的方法:
FileInputStream inStream =xxxActivity.this.openFileInput("文件名");
FileInputStream重写了抽象类InputStream的数据读取方法:介绍一下经常使用到的两种:
第一个:public int read(byte[ ] byte);//从此输入流将 b.length 个字节读取存入到一个byte[ ]数组当中,读取完毕时返回的数值是-1。
第二个:public int read(byte[ ] b , int off , int len); //从此输入流中将最多 b.length 个字节读取到一个byte[ ]数组当中,读取完毕时会返回 -1;
临时补充:我们在程序中同样也使用到了ByteArrayOutputStream这个类,我们在创建这个类的实例时,程序内部创建了一个byte型的数组的缓冲区,然后利用这个实例向数组写入byte型的数据。在网络传输中我们可能需要传输很多变量,我们可以利用ByteArrayOutputStream实例将所有的变量收集起来,然后一次性传送出去。
ByteArrayOutputStream 捕获内存缓存中的数据,然后可以将其转换成字节数组或者是字符型,然而ByteArrayOutputStream 可以将字符型或者是字节数组转化为输入流。
FileOutputStream 用于像一个文件写入数据,用于写入诸如图像数据之类的原始字节流。从超类继承write()、 close()等方法。
常用的构造方法:
FileOutputStream(String FilePath) //参数(文件全称路径)
FileOutputStream(File FileObject) //参数(描述该文件的对象)
这两种方法和FileInputStream中的这两个方法用法是一样的。
FileOutputStream(String fileath,booleam append) //参数(文件路径和文件的写入方式如果为真则说明文件以尾部追加的方式写入,当为假时则写入的文件覆盖之前的内容)//--------true时,不会清楚原有数据。False时会新建文件
FileOutputStream(File fileObject,boolean append)
FileOutputStream的创建并不依据文件是否存在,如果文件不存在,再打开FileOutputStream时会自动创建文件。
最后再补充一个小知识点:openFileOutput("文件名",操作模式) 操作模式有以下几种:
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
如果希望文件被其他应用读和写,可以传入: openFileOutput("文件名", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
- Android的数据存储操作—FileOutputStream和FileInputStream的学习
- Android的数据存储操作—FileOutputStream和FileInputStream的学习
- Android的数据存储操作—FileOutputStream和FileInputStream的学习
- FileOutputStream和FileInputStream实现文件的存储操作
- File 存储 FileOutputStream和FileInputStream的使用
- FileInputStream和FileOutputStream的使用
- FileOutputStream和FileInputStream的用法
- java最基础的文件操作(FileInputStream和FileoutputStream)
- android学习笔记——FileInputStream和FileOutputStream
- 对文件的操作,FileInputStream,FileOutputStream
- FileInputStream的读取和FileOutputStream的写入
- FileInputStream/FileOutputStream的应用
- FileInputStream/FileOutputStream的应用
- FileInputStream/FileOutputStream的应用
- FileInputStream/FileOutputStream的应用
- FileInputStream/FileOutputStream的应用
- FileInputStream/FileOutputStream的应用
- FileInputStream/FileOutputStream的应用
- myeclipse junit 单元测试学习
- Math.ceil函数有点小问题
- 通向架构师的道路(第九天)之weblogic的集群与配置
- 有点雷``
- 【设计模式基础】结构型模式 - 3 - 装饰者(Decorator)
- Android的数据存储操作—FileOutputStream和FileInputStream的学习
- HTTP状态的含义(HTTP100,HTTP304等)
- ffmpeg主要数据结构及其之间的关系
- struts2 访问或添加request等属性
- javaSE注解的学习
- FFmpeg架构之I/O模块分析 .
- c++中冒号(:)和双冒号(::)的用法
- Windows批处理BAT字符串操作 && Windows批处理函数编程
- 全国城市经纬度数据