我需要记录从我的应用程序传递到另一个应用程序(在我的控制下)的数据流.
我想这样做来记录发送和接收的字节以进行集成测试.
我可以这样做:
void inputStreamToOutputStream(final InputStream inputStream, final OutputStream out) {
Thread t = new Thread(new Runnable() {
public void run() {
try {
int d;
while ((d = inputStream.read()) != -1) {
out.write(d);
savedFile.write(d);
}
} catch (IOException ex) {
}
}
});
t.start();
}
Run Code Online (Sandbox Code Playgroud)
但感觉应该已经有了一个库来做到这一点.我可以看到Apache IOUtils有一种copy将两个流绑定在一起的方法:
IOUtils.copy(in, out);
Run Code Online (Sandbox Code Playgroud)
但这不会让我'记录'发送的字节.在我自己开始之前,有人可以建议一个像样的库吗?
使用Apache Commons IO 的TeeOutputStream/TeeInputStream,您可以写入您的输出以及您的savedInFile和savedOutFile:
OutputStream teeOutput = new TeeOutputStream(out, savedOutFile);
InputStream teeInput = new TeeInputStream(input, savedInFile)
Run Code Online (Sandbox Code Playgroud)
然后您可以将T恤发送到您的应用程序进行读/写.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |