Для ресурсов (вещи, которые нужно закрыть) вы получаете три варианта:
1) Вы создаете его здесь, вы закрываете его здесь: Используйте конструкцию try-with-resources.
2) Вы передаете ресурс объекту, а затем этот объект сам по себе является закрываемым ресурсом;когда этот ресурс закрыт, он закрывает ресурс внутри него.
3) Странные вещи, не рекомендуемые, такие линтеры, как sonar, будут помечать его как проблемный, трудный для отладки и т. д.
Естественно, вы должны избегать # 3, насколько это возможно.
Здесь, похоже, у вас есть 2 возможных варианта:
Сделайте ClassB реализующим AutoClosable и сделайте так, чтобыinputtream в своем методе close или
вместо передачи inputtream, передайте вещь, из которой может быть получен inputtream, так что код ClassB, который его использует, может выполнить попытку-существо с ресурсамиПредположительно, вы могли бы передать объект Path или File вместо InputStream.