参考
自《Java 和 Android 开发实战详解》和《Java程序设计基础》罗刚主编
http://www.runoob.com/sqlite/sqlite-java.html
概括
- Stream 流 —— 是Java 预定义的对不同情况进行输入/输出操作的类。
- 是相对于程序来说的:数据进来,称为流入
FileInputStream() 面向字节的文件输入流:
返回值类型 | 方法 | 解释 |
---|
int | read() | 从输入流中读入一个字节 |
int | read(byte[] b) | 将最多b.length 个字节的数据读入一个byte数组中 |
int | read(byte[] b , int off, int len) | 最多len个字节的数据从off 处开始读入一个byte数组中 |
int | available | 返回下一次对此输入流调用的方法可以不受阻塞的从此输入流读取(或返回)的估计剩余字节数 |
long | skip(long n) | 从输入流中跳过并丢弃 n 个字节 |
void | close() | 关闭文件输入流并释放与此流相关的所有资源 |
FileOutputStream() 面向字节的文件输出流:
返回值类型 | 方法 | 解释 |
---|
void | write(int b) | |
void | write(byte[] b) | |
void | write(byte[] b , int off, int len) | |
void | flush() | 刷新此输出流并强制写出所有缓冲的输出字节到输出流对应的接收端 |
void | close() | |
每次输入一个字节,效率十分低,为提高效率:
- 字节缓冲输入流 :
BufferedInputStream
- 字节缓冲输出流:
BufferedOutputStream
- 格式化字节输入流:
DataInputStream
- 格式化字节输出流:
DataOutputStream
BufferedInputStream bin = new BufferedInputStream(fin);
b[i] = (byte)bin.read();
..../
BufferedOutputStream fout = new BufferedOutputStream(fout);
bout.write(b[i]);
FileReader 类面向字符的文件输入流:
返回值类型 | 方法 | 解释 |
---|
int | read() | 从输入流中读入一个字符 数据 |
int | read(char[] c ) | 将最多c.length 个字节的数据读入一个 char 数组 c 中 |
int | read(char[] c , int off, int len) | 最多len个字节的数据从off 处开始读入一个char数组c 中 |
long | skip(long n) | 从输入流中跳过并丢弃 n 个字符 |
void | reset() | 重定位输入流 |
void | mark( int n ) | 标记输入流的当前位置 |
boolean | ready() | 判断输入流是否做好读的准备 |
void | close() | 关闭文件输入流并释放与此流相关的所有资源 |
FileWriter
返回值类型 | 方法 | 解释 |
---|
void | write(int c) | 字符 数据 |
void | write(char[] cbuf ) | 字符数组 |
void | write(char[] cbuf , int off, int len) | 部分字符数组 |
void | write(String str) | 字符串数组 |
void | write(String str , int off, int len) | 部分 |
void | append(char) | 添加指定字符串 |
void | append(CharSequence csq) | 添加指定字符串序列 |
void | append(CharSequence csq,int start , int end) | 添加指定字符串序列的部分 |
String | getEncoding() | 返回此流使用的字符编码名称 |
Android 程序中
可以使用java.io 包的类来读取和写入,在context类中,用openFileInput()
, openFileOutput()
读,写
例如: