java读取输入流两种

    private static byte[] readStream(InputStream in){
if(in==null){
return null;
} byte[] buffer = null; try { int availableLength = 0;
while(availableLength==0){
availableLength = in.available();//可获取的字节流长度 if(availableLength==0&&in.read()==-1){//防止读取流返回为空造成死循环
break;
}
} buffer = new byte[availableLength]; int readCount = 0;
while(readCount<availableLength){
readCount += in.read(buffer, readCount, availableLength-readCount);
} } catch (IOException e) {
e.printStackTrace();
} finally{
if(in!=null){
try {
in.close();
in = null;
} catch (IOException e) {
e.printStackTrace();
}
} } return buffer;
} public static byte[] readStream1(InputStream in) { byte[] b = null;
ByteArrayOutputStream outSteam = null;
try {
byte[] buffer = new byte[1024 * 4];
outSteam = new ByteArrayOutputStream(); int len = -1;
while ((len = in.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
} b = outSteam.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
if(outSteam!=null){
outSteam.close();
outSteam = null;
}
if(in!=null){
in.close();
in = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
return b;
}
05-08 15:29