Java 如何从FileDescriptor创建FileChannel?

Java 如何从FileDescriptor创建FileChannel?,java,android,Java,Android,我知道我可以只做新建FileInputStream(fd).getChannel(),但这将关闭传入的FileDescriptor。有没有一种方法可以在没有任何副作用的情况下关闭FileDescriptorFileDescriptor不可自动关闭。垃圾回收时,新的FileInputSteam将关闭,然后关闭关联的FileDescriptor。看啊。那么您从哪里获得文件描述符?看起来你只能从已经打开的流中获取它。我猜这种行为的原因是FD与它打开的流几乎是同义词。是的,它来自另一个FileInput

我知道我可以只做
新建FileInputStream(fd).getChannel()
,但这将关闭传入的FileDescriptor。有没有一种方法可以在没有任何副作用的情况下关闭
FileDescriptor
FileDescriptor
不可自动关闭。垃圾回收时,新的FileInputSteam将关闭,然后关闭关联的FileDescriptor。看啊。那么您从哪里获得
文件描述符
?看起来你只能从已经打开的流中获取它。我猜这种行为的原因是FD与它打开的
流几乎是同义词。是的,它来自另一个FileInputStream JDK实现在最近的版本中有了显著的改进。如果存在指向底层文件描述符的FileChannel,则不会关闭该描述符。