Как вы думаете, будет ли полезно разместить BufferedReader вокруг любого входного потока, который у вас есть? Он не поместил бы его во временный файл, но позволил бы вам привязаться к этим данным. Вы можете установить нужный размер BufferedReader.
Вы написали свой XML-парсер? Если вы этого не сделали, что он примет в качестве параметра? Если вы написали это, вы спрашиваете об эффективности. То есть какой объект, путь или файл должен запрашивать ваш синтаксический анализатор, чтобы быть наиболее эффективным?