读取DataOutputStream的内容

时间:2011-06-24 10:08:01

标签: android

有人能告诉我是否有办法阅读/输出DataOutputStream?的内容我正在使用

new DataOutputStream( httpUrlConnection.getOutputStream() );

我正在写一些帖子数据。我希望能够在写入此输出流后看到我发布的数据,但找不到简单的方法。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

当然你可以'看到'DataOutputStream的'内容' - 我想它不会是你期望的!我想你想要做的是检查通过流传递的数据,使用常规类是不可能的 - 实际上流的定义是它不包含所有的数据由它管理,任何时候。

如果您确实需要能够审核您提供给任何输出流的数据,那么您可以执行以下操作:

import java.io.DataOutputStream;

public class WatcherOutputStream extends DataOutputStream {
     private byte[] data = null;

     public WatcherOutputStream(OutputStream delegateStream) {
        super(delegateStream);
     }

     public void write(byte[] b) {
        // Store the bytes internally

        // Pass off to delegate
        super.write(b);
    }
 }

数据保存代码和剩余的写入方法留给您作为练习。当然,这是跟踪您正在写入流的数据的一种可怕方式 - 它在内存和速度方面都是额外的开销层。另一种选择是在编写数据时使用AOP检查数据。这种方法的优点是对代码的干扰较小,易于维护,因为您无需修改​​主程序即可轻松添加和删除切入点。我怀疑AOP可能比你现在想要的解决方案更复杂,但我将这个link包含在更多的阅读中,以防它有用。