检测Java

时间:2015-09-20 05:59:56

标签: java outputstream

假设我传递了一个OutputStream变量。有没有办法检测OutputStream的来源是打开文件还是打开套接字等?

如果不可能,如果我知道变量的类型为FileOutputStream,那么它是否更好,因此我可以得到它的FileDescriptor。谢谢。

UPDATE:

每个FileOutputStream实例都有一个FileDescriptor。我无法区分它的来源,因为它来自Java文档:

文件描述符类的实例充当底层机器特定结构的不透明句柄,表示打开文件,打开套接字或其他字节源或接收器。文件描述符的主要实际用途是创建一个FileInputStream或FileOutputStream来包含它。

UPDATE2:

我正在开发一个自定义JVM之上的自动化工具,用于分析Java字节码,并确定程序写入文件或通过套接字发送的字节数等(在非常简单的程序中)。然后以不同方式处理文件,套接字等。

定制的JVM让我知道它何时执行字节码指令INVOKEVIRTUAL,我可以检查被调用者是否是OutputStream。现在我需要做的是确定这个OutputStream写入文件/套接字等的位置。

0 个答案:

没有答案