读书人

java io惯用api

发布时间: 2012-12-21 12:03:49 作者: rapoo

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实现下载文件的代码:



读书人网 >编程

热点推荐