有人能告诉我是否有办法阅读/输出DataOutputStream?
的内容我正在使用
new DataOutputStream( httpUrlConnection.getOutputStream() );
我正在写一些帖子数据。我希望能够在写入此输出流后看到我发布的数据,但找不到简单的方法。
感谢您的帮助!
答案 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包含在更多的阅读中,以防它有用。