字节转换流ByteArrayOutputStreamout ,甚是好用,激动
以前自己做数据流的读取喜欢用字符流,但是遇到图片,音乐的下载就鞭长莫及了,只能选择用字节流,然后自己的做法是先定义一个超大
的字节数组,然后往里面写,这样做有个问题会造成内存空间的紧张。。。。今儿发现ByteArrayOutputStream 这个转换流,甚是激动。
//传入一个字节流,返回一个装满了数据(空间不多不少)的字节数组
private byte[] readInputStream(InputStream in) throws IOException
{
byte[] buffer = new byte[100];
ByteArrayOutputStreamout = new ByteArrayOutputStream();
int readSize;
while((readSize = in.read(buffer)) >= 0)
//将指定字节数组中从偏移量 off 开始的 len 个字节写入此字节数组输出流。
out.write(buffer, 0, readSize); //ByteArrayOutputStream 独家奉献的超级方法。
in.close();
out.close();
return out.toByteArray();
}
//传入一个字节流,返回一个指定编码转码后的字符串
private String readInputStream(InputStream in,String charsetname) throws IOException
{
byte[] buffer = new byte[100];
ByteArrayOutputStream out = new ByteArrayOutputStream();
int readSize;
while((readSize = in.read(buffer)) >= 0)
out.write(buffer, 0, readSize);
in.close();
out.close();
return out.toString(charsetname);//将缓冲区的内容转换为字符串,根据指定的字符编码将字节转换成字符。
}
以前自己做数据流的读取喜欢用字符流,但是遇到图片,音乐的下载就鞭长莫及了,只能选择用字节流,然后自己的做法是先定义一个超大
的字节数组,然后往里面写,这样做有个问题会造成内存空间的紧张。。。。今儿发现ByteArrayOutputStream 这个转换流,甚是激动。
//传入一个字节流,返回一个装满了数据(空间不多不少)的字节数组
private byte[] readInputStream(InputStream in) throws IOException
{
byte[] buffer = new byte[100];
ByteArrayOutputStreamout = new ByteArrayOutputStream();
int readSize;
while((readSize = in.read(buffer)) >= 0)
//将指定字节数组中从偏移量 off 开始的 len 个字节写入此字节数组输出流。
out.write(buffer, 0, readSize); //ByteArrayOutputStream 独家奉献的超级方法。
in.close();
out.close();
return out.toByteArray();
}
//传入一个字节流,返回一个指定编码转码后的字符串
private String readInputStream(InputStream in,String charsetname) throws IOException
{
byte[] buffer = new byte[100];
ByteArrayOutputStream out = new ByteArrayOutputStream();
int readSize;
while((readSize = in.read(buffer)) >= 0)
out.write(buffer, 0, readSize);
in.close();
out.close();
return out.toString(charsetname);//将缓冲区的内容转换为字符串,根据指定的字符编码将字节转换成字符。
}