`
lvjun106
  • 浏览: 436918 次
  • 性别: Icon_minigender_1
  • 来自: 芜湖
社区版块
存档分类
最新评论

JAVA clone 复制 inputstream

    博客分类:
  • JAVA
 
阅读更多
ByteArrayOutputStream baos = new ByteArrayOutputStream();

// Fake code simulating the copy
// You can generally do better with nio if you need...
// And please, unlike me, do something about the Exceptions :D
byte[] buffer = new byte[1024];
int len;
while ((len = input.read(buffer)) > -1 ) {
    baos.write(buffer, 0, len);
}
baos.flush();

// Open new InputStreams using the recorded bytes
// Can be repeated as many times as you wish
InputStream is1 = new ByteArrayInputStream(baos.toByteArray()); 
InputStream is2 = new ByteArrayInputStream(baos.toByteArray()); 

 

对于大多数 InputStream 输入流用过之后,就会关闭。怎样重复使用呢?

分享到:
评论

相关推荐

    笔试Java3.doc

    19. clone() 方法:clone() 方法是 Object 类中的一个方法,用于复制对象。 Class.forName 和内存泄漏 20. Class.forName 的作用:Class.forName 方法可以用于加载类,并返回对应的 Class 对象。 21. 内存泄漏:...

    《Java设计模式》课后习题参考答案-刘伟(20180723).pdf

    - java.io.InputStreamReader(InputStream),转换输入流到Reader。 - javax.xml.bind.annotation.adapters.XmlAdapter#marshal()和#unmarshal(),分别用于进行数据的序列化和反序列化。 以上是根据给定文件内容...

    JAVA常见的设计模式+源码+ppt+pdf

    Java的`java.io.InputStream`和`java.io.OutputStream`的read()和write()方法就是模板方法模式。 16. **访问者模式**:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于...

    Java 与模式 pdf格式

    Java提供了`Cloneable`接口和`Object`类的`clone()`方法来支持原型模式。 6. **适配器模式**:将一个类的接口转换成客户希望的另一个接口。适配器使原本不兼容的类可以一起工作。Java的`Adapter`类和接口可以实现...

    Thinking in Java 中文第四版+习题答案

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    java 编程入门思考

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    Java rt.jar 源码分析

    3. **内部实现细节**:例如,`java.lang.Object`的`clone()`方法是如何工作的,`java.util.ArrayList`和`java.util.LinkedList`的性能差异,`java.io.InputStream`和`java.io.OutputStream`的抽象设计等。...

    设计模式--Java语言版本

    Java中的clone()方法可以实现浅复制,深复制则需要自定义实现。 5. **观察者模式**(Subject-Observer):定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被...

    Java初学者入门教学

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    java联想(中文)

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    Java 的 23 种设计模式

    Java的`java.io.InputStream`和`java.io.OutputStream`类定义了一些模板方法。 23. **访问者模式 (Visitor)**:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些...

    Java与模式

    5. **原型模式**:通过复制已有对象来创建新对象,Java中的`Cloneable`接口和`Object`类的`clone()`方法是实现原型模式的关键。 6. **观察者模式**:定义对象间的一对多依赖关系,当一个对象的状态发生改变时,所有...

    JAVA_Thinking in Java

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    Thinking in Java简体中文(全)

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    【Java面试+Java后端技术学习指南】

    - 集合的复制与转换:了解clone()、toArray()、copyOf()等方法。 4. **多线程** - 线程的创建:理解Thread类的使用和Runnable接口的实现。 - 线程同步:掌握synchronized关键字、wait/notify机制,以及Lock接口...

    Java 语言程序设计基础

    12. **对象克隆:** 通过 `clone()` 方法实现对象的复制。 #### 五、Java 的存储结构与程序运行机制 Java 的存储结构主要包括栈、堆和方法区等组成部分,这些结构共同协作支持 Java 程序的运行。 1. **栈:** ...

    java知识点总结

    - **参数传递**:Java中方法参数的传递方式为值传递,对于基本数据类型是复制传递,对于引用类型则是引用的复制传递。 ##### 3.6 多态、动态绑定、重写与重载 - **重载**(Overload):同一个类中多个方法具有相同...

    javaN个常用工具类

    例如,`add()`可以在数组末尾添加元素,`remove()`可以移除指定索引的元素,`clone()`可以创建数组的副本。 5. **CollectionUtils**: 这个类可能包含对集合(List、Set、Map等)的操作,如查找、过滤、合并、反转等...

    JAVA经典教材笔记

    - 实现克隆的方式:实现Cloneable接口并重写clone()方法。 - **Arrays类** - Arrays类的作用:操作数组。 - Arrays类的常用方法:sort(T[] a)、copyOf(T[] original, int newLength)等。 - **比较器(Comparable、...

Global site tag (gtag.js) - Google Analytics