java io常用api
字节处理类都继承自InputStream和OutPutStream这两个抽象类;
字符流操作类都继承自Reader或Writer这两个抽象类。
字节流处理类:
InputStream:
int read() : 从输入流中读取数据的下一个字节(下个数据字节在0~255范围内),如果到达流的末尾返回-1
int read(byte[] b) : 从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中,等同于read(b,0,b.length)
int read(byte[] b,int off,int len) : 将输入流中最多len个数据字节读入byte数组,将读取的第一个字节存储在元素b[off]中,下一个b[off+1]中,依此类推…
OutputStream:
void write(int b) : 将指定的字节写入此输出流,要写入字节是参数b的低位8个
void write(byte[] b) : 将b.length个字节从指定的byte数组中写入此输出流,等价于write(b,0,b.length)
void write(byte[] b,int off,int len) : 将指定byte数组中从偏移量off开始的len个字节写入此输出流。
字符流处理类:
Reader :
int read() : 读取单个字符。返回:作为整数读取的字符,范围在0~65535之间,如果已经到达流的末尾,则返回-1
int read(char[] cbuf) : 将字符读取数组中。返回:读取的字符数,如果已经到达流的末尾,则返回-1
int read(char[] cbuf,int off,int len) : 将字符读入数组的某一部分
Writer :
void write(int c) : 写入单个字符。要写入的字符包含在c的低16位中
void write(char[] cbuf) : 写入字符数组
void write(char[] cbuf,int off,int len) : 写入字符数组的某一部分
void write(String str) : 写入字符串
void write(String str,int off,int len) : 写入字符串的某一部分
字节流与字符流的桥梁 : InputStreamReader、OutputStreamWriter
字节流转化为字符流可以用InputStreamReader OutputStreamWriter转化成BufferedReader BufferedWriter 它们具有缓冲区。
下面是一些常用的例子:
下载文件
在前台页面中,常用的有两种下载文件的方式:
一种是利用a标签,设置a标签:<a href="downLoad.jsp?filename=aaa.ppt">点击下载</a> (href也可以指向.do请求)
一种是利用隐藏的iframe,设置iframe:ifrObj.src = '../../fileSave.do?idx='+idx;(src也可以指向一个jsp文件)
在后端处理下载,大概有两种方式(其实本质上是一样的,呵呵):
一种是利用jsp页面下载文件;一种是用java代码实现;
下面是jsp实现下载文件的代码: