首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在复制InputStreamReader

正在复制InputStreamReader
EN

Stack Overflow用户
提问于 2011-08-02 13:43:49
回答 2查看 920关注 0票数 0

有没有人能提供一个

代码语言:javascript
复制
public class CopyingInputStreamReader extends InputStreamReader {
   public  CopyingInputStreamReader(InputStream is, OutputStream copyStream) {
  .....

实现应该将所读取的内容复制到输出流中。我有我的实现,但我的硬盘崩溃了,所以我需要恢复它。请在接下来的5分钟内回复,否则我会自己想办法的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-02 13:58:24

就我个人而言,我不会在读者级别上这样做。我会编写一个InputStream,它覆盖来自InputStream的所有方法方法,委托给传递给构造函数的输入流,并在每次读取之后,在将数据返回给调用方之前写入输出流。例如:

代码语言:javascript
复制
@Override
public int read(byte[] buffer, int start, int length) throws IOException
{
    int ret = input.read(buffer, start, length);
    output.write(buffer, start, ret);
    return ret;
}

我不会在extend InputStreamReader上说明的原因是,所有read操作的结果都将是文本数据-然后您需要以某种方式将其写入到OutputStream中……

当然,如果您真的想从一种编码转换为另一种编码,则值得扩展Reader而不是InputStream,使用另一个Reader进行委托,并使用Writer进行写入。再一次,你停留在一个领域(文本),而不是自己成为转换的一部分。

编辑:我忘了提到你还需要重写非读方法,要么直接委托给输入流,要么抛出异常。(例如,您可能不希望支持标记/重置。)

票数 0
EN

Stack Overflow用户

发布于 2011-08-02 13:58:41

IOUtils用于

代码语言:javascript
复制
IOUtils.copy(inputStream, outputStream);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6907740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档