您的位置:首页 > 数据库

字节流转化为字符流输出

2016-09-20 19:32 211 查看

字节流和字符流的区别

字符流在进行输出的时候会使用缓冲区,而字节流不使用缓冲区。在关闭字符流的时候会强制的将缓冲区的内容进行输出,但如果不关闭流缓冲区的内容是无法输出的。

那么什么是缓冲区那?

如果一个程序频繁地操作一个资源(如文件或数据库),则性能会很低,此时为了提升性能,就可以将一部分数据暂时读入到内存的一块区域之中,以后直接从此区域中读取数据即可,因为读取内存速度会比较快,这样可以提升程序的性能。简单的理解就是缓冲区是一段特殊的内存。

在字符流的操作中,所有的字符都是在内存中形成的,在输出前会将所有的内容暂时保存在内存之中,所以使用了缓冲区暂存数据。

下面是将字节流转化为字符流输出的一段代码

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

public class StreamUtils {

public static String streamToString(InputStream  in){
String result ="";

try{
//new 一个字节输出流的数组
ByteArrayOutputStream out = new ByteArrayOutputStream();
//[1]new 一个字节数组
byte[] buffer = new byte[1024];
int length = 0;
while (  (length =  in.read(buffer)) !=-1) {
out.write(buffer, 0, length);
//[2]强制关闭缓冲区
out.flush();
}

result = out.toString();//[3]输出字符串

out.close();
}catch (Exception e) {
e.printStackTrace();
}

return result;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字符流 内存 数据库