Аргумент объекта Mocking File в конструкторе для использования inputtream - PullRequest
0 голосов
/ 27 мая 2011

У меня есть класс, который я не могу изменить, и этот класс содержит один конструктор, который требует java.io.File.У меня уже есть информация, загруженная из другого источника, и в настоящее время она находится в памяти.Итак, я хочу знать, есть ли способ смоделировать объект java.io.File таким способом, который использует информацию, которая уже находится в памяти.Я знаю, что сначала могу сохранить информацию из памяти на диск, но мне не нравится этот дополнительный шаг.

Есть мысли по этому поводу?

1 Ответ

0 голосов
/ 27 мая 2011

A File объект не содержит данных файла, это более или менее класс, который описывает файл или папку только по имени (пути).

File не является окончательным, поэтому вы можете расширить его и предоставить собственную реализацию, но это не помогает, потому что в отличие от Sockets, экземпляр File не может возвращать входной или выходной поток. File - это , используемый классом чтения, записи или потокового класса, чтобы просто получить путь к файлу для чтения / записи данных через дисковый ввод-вывод. Так что издеваться над File не поможет.

Вы должны будете передать входной поток другому классу, который предоставляет данные из вашего источника памяти. Единственный шанс взглянуть на API или, вторая идея: проверить, можете ли вы что-то сделать с помощью отражения. Может быть, вам повезло, и у класса есть поле inputtream, а может, вам снова повезло, и этого достаточно, чтобы просто установить собственный экземпляр inputsream.

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