【Android 学习笔记】 Java 的Stream模型—for Android

参考
自《Java 和 Android 开发实战详解》和《Java程序设计基础》罗刚主编
http://www.runoob.com/sqlite/sqlite-java.html

概括

  • Stream 流 —— 是Java 预定义的对不同情况进行输入/输出操作的类。
  • 是相对于程序来说的:数据进来,称为流入

FileInputStream() 面向字节的文件输入流:

返回值类型方法解释
intread()从输入流中读入一个字节
intread(byte[] b)将最多b.length 个字节的数据读入一个byte数组中
intread(byte[] b , int off, int len)最多len个字节的数据从off 处开始读入一个byte数组中
intavailable返回下一次对此输入流调用的方法可以不受阻塞的从此输入流读取(或返回)的估计剩余字节数
longskip(long n)从输入流中跳过并丢弃 n 个字节
voidclose()关闭文件输入流并释放与此流相关的所有资源

FileOutputStream() 面向字节的文件输出流:

返回值类型方法解释
voidwrite(int b)
voidwrite(byte[] b)
voidwrite(byte[] b , int off, int len)
voidflush()刷新此输出流并强制写出所有缓冲的输出字节到输出流对应的接收端
voidclose()

每次输入一个字节,效率十分低,为提高效率:

  • 字节缓冲输入流 : BufferedInputStream
  • 字节缓冲输出流: BufferedOutputStream
  • 格式化字节输入流:DataInputStream
  • 格式化字节输出流:DataOutputStream
// 缓冲包装
BufferedInputStream bin = new BufferedInputStream(fin);
b[i] = (byte)bin.read(); //使用缓冲输入流对象来进行输入
..../
BufferedOutputStream fout = new BufferedOutputStream(fout);
bout.write(b[i]);

FileReader 类面向字符的文件输入流:

返回值类型方法解释
intread()从输入流中读入一个字符数据
intread(char[] c)将最多c.length 个字节的数据读入一个 char 数组 c
intread(char[] c , int off, int len)最多len个字节的数据从off 处开始读入一个char数组c
longskip(long n)从输入流中跳过并丢弃 n 个字符
voidreset()重定位输入流
voidmark( int n )标记输入流的当前位置
booleanready()判断输入流是否做好读的准备
voidclose()关闭文件输入流并释放与此流相关的所有资源

FileWriter

返回值类型方法解释
voidwrite(int c)字符数据
voidwrite(char[] cbuf)字符数组
voidwrite(char[] cbuf , int off, int len)部分字符数组
voidwrite(String str)字符串数组
voidwrite(String str , int off, int len)部分
voidappend(char)添加指定字符串
voidappend(CharSequence csq)添加指定字符串序列
voidappend(CharSequence csq,int start , int end)添加指定字符串序列的部分
StringgetEncoding()返回此流使用的字符编码名称

Android 程序中

可以使用java.io 包的类来读取和写入,在context类中,用openFileInput() , openFileOutput() 读,写
例如:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值