`
sd4886656
  • 浏览: 88592 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

输入流的缓存

阅读更多

java网络访问时,一般都会向服务器获取一个输入流 Inpustream in


这个流是不能读第二次的,比方这个流既要decode成Bitmap图片,又要将此图片写本地的话,第二次读的时候,这个流就失效了。


网上有人建议用mark() 来重读,但是有些情况下in是不支持mark()的


所以必须用byte [] 或者神马来缓存一下(当然读一次就够了的情况是不需要了)

 

ByteArrayOutputStream out = ByteArrayOutputStream();
int ch = -1;
while( (ch = os.read()) !=-1 ){
	out.write(ch);
}
byte [] buf = out.toByteArray();// InputStream 转 byte数组
//相反 byte数组也可以转化成流 
ByteArrayInputStream in = new ByteArrayInputStream(array);//一行代码,byte [] 转流

File file = new File(path+File.separator+id+tname);
					
try {
	file.createNewFile();
} catch (IOException e) {
	e.printStackTrace();
	return false;							
}

DataOutputStream out = new DataOutputStream(new FileOutputStream(file));
int ch;
while((ch = in.read()) != -1){
	out.write(ch);
}
out.flush();
out.close();//
 
分享到:
评论

相关推荐

    TCP编程——网络编程详细源码

    // 构造输入流缓存 BufferedReader bufReader = new BufferedReader( new InputStreamReader(clientInput)); // 按行读取输入内容 String strLine = bufReader.readLine(); if ("OVER"....

    论文研究-基于自相似排队模型的星上交换输入缓存分配算法.pdf

    针对空间信息网络的自相似分组业务流、星上交换节点的有限缓存资源,提出一种基于自相似排队模型的星上交换输入缓存分配算法。构建了基于VOQ的空间信息网络星上Crossbar交换节点模型,依据空间信息网络业务流的自...

    steady:具有缓存的基于Python的工作流系统

    稳定的 steady是用于Python的简单工作流程包。 当您有一系列要对数据集执行的处理步骤并且每个处理... 自上次更新以来,工作流步骤的任何输入内容均已更改; 当外部可执行文件已更改时。 致谢 该项目得到了美国国家

    commons-io-2.CHM

    toBufferedInputStream,toBufferedReader:将输入转为带缓存的输入流。 11. toByteArray,toCharArray:将输入流的内容转为字节数组、字符数组。 12. toString:将输入流或数组中的内容转化为字符串。 13. ...

    双BUFF乒乓操作案例

    乒乓操作的处理流程为:输入数据通过“输入数据选择单元"将数据等时分配到两个数据缓冲模块中,在第一个缓冲周期,将输入的数据流缓存到“数据缓冲模块1"中,在第二个缓冲周期,通过“输入数据单元”切换,将输入的...

    JAVA7种IO流的基本使用

    BudderedWriter,FileRead,转换流,缓存流的基本使用~其中有复制文本~复制图片~从键盘输入保存到文件等小例子

    BufferedReader的用法---马克-to-win java视频

    BufferedReader的用法---马克-to-win java视频缓存输入流的介绍

    汽车制造业生产车间物流系统优化研究(博士论文)

    最后,以总体成本最低为最终目标,基于缓存区布局和车辆配置、混流生产物料 顺序供应和入口协同化设计以及牵引车路径优化建立总体优化模型,并用遗传算法求解,还原解为汽车制造业生产车间物流系统解决方案,通过eM-...

    C++标准库stl

    <istream> 为管理输出流缓存区的输入定义模板类 <ostream> 为管理输出流缓存区的输出定义模板类 <sstream> 支持字符串的流输入输出 <fstream> 支持文件的流输入输出 <iosfwd> 为输入输出对象提供向前的声明 ...

    C语言中输入输出流与缓冲区的深入讲解

    缓冲区 又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。 缓冲区根据其对应的是输入设备还是输出设备,分为...

    licensed-ci:在GitHub Actions工作流程中更新和检查缓存的许可证

    运行工作流以使用licensed cache更新缓存的依赖项元数据,并将更新推送到GitHub 运行licensed status以检查许可数据是否可用,已知,最新并且对所有依赖项均有效 状态检查失败将导致该步骤失败,从而允许检查和...

    archived-pygmentize-bundled-cached:pygmentize-bundled 的缓存包装器

    流接口虽然仍然可用,但本质上是一个缓冲接口,以便可以收集输入代码,在缓存中检查并将结果写回。 即使在缓存未命中的情况下,结果仍然作为单个块写入(结果可以流式传输,但这是一项重要的工作,接受拉取请求!)...

    FPGA的发展概述和设计资料说明

    数据缓冲模块可以为仼何存储模块,比较常用的存储单元为双口RAM(DPRAMˆ单口RAM(SPRAM)、FIFO等在第1个缓冲周期,将输入的数据流缓存到“数据缓冲模块1冫在第2个缓冲周期,通过“输入数据选择单元″的切换,将...

    cached-dependencies:Github Action一步设置多个缓存目标

    创建一个bash命令库可轻松减少工作流之间的冗余。 对于构建需要多阶段构建过程的Web应用程序最有用。 这是您与缓存设置依赖项相关的所有操作的一站式操作。 输入项 run :bash命令运行,允许快捷方式命令 caches ...

    Android Bitmap的加载与缓存

    Android系统中图片一般用Bitmap对象表示,它支持png,jpg等常见格式。通常情况下图片的体积都比较大,单个应用允许使用的内存又是... BitmapFactory.decodeStream :从输入流加载。 BitmapFactory.decodeResource :从

    HTML5用户指南

     新的输入类型  新的属性  综合应用  对遗留浏览器的向后兼容  样式化新表单字段和错误消息  覆盖浏览器默认  使用 diy验证  避免验证  小结 第4章 视频和音频  本地多媒体:为什么、是什么、如何做  ...

    基于MIMO技术的视频缓存器设计

     设计应用在基于DVB-C的EOAM调制器系统中,该系统的基本要求能够缓存集合多路视频TS流的千兆IP数据,并对IP数据进行多路高速分发;输入为2个千兆网口,输出至RF射频接口的数百个数据分发通道。  在以往系统设计中...

    C#中基于流的XML文件操作笔记

    System.Xml.XmlReader和System.Xml.XmlWriters是两个...2.可以有多个输入流 3.提取模式可以作为推送模式的基础,反之不行。 4.提供一个可以将字符串直接写入缓冲区,避免多余字节的的复制。 5.有选择的处理XML流,

    消费电子中的基于MIMO技术的视频缓存器设计

     设计应用在基于DVB-C的EOAM调制器系统中,该系统的基本要求能够缓存集合多路视频TS流的千兆IP数据,并对IP数据进行多路高速分发;输入为2个千兆网口,输出至RF射频接口的数百个数据分发通道。  在以往系统设计中...

Global site tag (gtag.js) - Google Analytics