Java: настройка файлового ввода-вывода - PullRequest
0 голосов
/ 13 октября 2010

Я попытался создать своего рода генератор файлов, который выплевывает жестко закодированные сообщения в файл с небольшими изменениями некоторых строк на основе пользовательского ввода. Поскольку я использую полиморфизм, у меня есть несколько файлов и интерфейсов.

Я обнаруживаю, что передаю параметры файла больше, чем один, и начинаю переосмысливать то, как я структурировал свою программу. В связи с этим возникает вопрос: сильно ли сказывается производительность при передаче файла в качестве параметра нескольким методам?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 13 октября 2010

Из-за количества параметров, передаваемых методу, нет ощутимого влияния на производительность.

Однако повторное открытие и закрытие java.io.File{Input|Output}Stream имеет свою стоимость. Кроме того, вам нужен стандартный код try / finally, чтобы убедиться, что файл правильно закрыт после использования.

Лучшее решение - передать OutputStream вашим методам и открыть файл один раз в методе верхнего уровня. Это также позволит наиболее легко тестировать ваш код: вы можете передать ByteArrayOutputStream вместо FileOutputStream.

О, и заверните свой FileOutputStream в BufferedOutputStream

0 голосов
/ 13 октября 2010

Я не совсем уверен, что вы на самом деле передаете, и некоторые примеры кода были бы полезны.

Моя первая мысль: если у вас проблемы с производительностью, вам следует профилировать приложение. Написание файла, скорее всего, будет узким местом, а не передачей аргументов (помните - вы будете передавать ссылки на объекты , а не сами объекты).

Но сначала измерьте производительность вашего приложения, прежде чем приступать к каким-либо (возможно, дорогостоящим) рефакторингам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...