Я бы предложил некоторый класс StreamFactory
, который будет хранить эту информацию для вас.Затем потоки могут делать InputStream getStream(File)
и closeStream(InputStream)
или что-то подобное, и фабрика будет вести список того, у какого потока есть открытые потоки, и предоставлять некоторые статистические функции, такие как:
public Collection<InputStream> getOpenStreams()
и
public int getNumThreadsWithStream(InputStream);