首页 > Java开发 > java InputStream使用

java InputStream使用

  1. InputStream读取流有三个方法,分别为read(),read(byte[] b),read(byte[] b, int off, int len)。其中read()方法是一次读取一个字节,效率是非常低的。所以最好是使用后面两个方法。
[html][/html] view plaincopy

  1. /**
  2.  * 读取流
  3.  *
  4.  * @param inStream
  5.  * @return 字节数组
  6.  * @throws Exception
  7.  */
  8. public static byte[] readStream(InputStream inStream) throws Exception {
  9.     ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
  10.     byte[] buffer = new byte[1024];
  11.     int len = -1;
  12.     while ((len = inStream.read(buffer)) != -1) {
  13.         outSteam.write(buffer, 0, len);
  14.     }
  15.     outSteam.close();
  16.     inStream.close();
  17.     return outSteam.toByteArray();
  18. }

 

这里不能使用成:

InputStream is = conn.getInputStream();

PrintStream ps =new PrintStream(new File("d:/a.txt"));

byte[] buffer = new byte[1024];

while((is.read(buffer,0,byte.length) )) > 0){
ps.write(buffer,0,byte.length);
}

这样会导致输出文件中有很多NULL和乱码。因为实际读到的长度可能没有1024这么长,导致后面用很多NULL来补充,出现乱码等情况。


本文固定链接: http://www.devba.com/index.php/archives/4133.html | 开发吧

报歉!评论已关闭.