Использование Java 8.Как читать файл, созданный во время выполнения?
В принципе, в модульном тесте (JUnit) У меня есть этот код:
callSomeCode();
assertTrue(new File(this.getClass().getResource("/img/dest/someImage.gif").getFile()).exists());
В callSomeCode()
, у меня есть это:
InputStream is = bodyPart.getInputStream();
File f = new File("src/test/resources/img/dest/" + bodyPart.getFileName()); //filename being someImage.gif
FileOutputStream fos = new FileOutputStream(f);
byte[] buf = new byte[40096];
int bytesRead;
while ((bytesRead = is.read(buf)) != -1)
fos.write(buf, 0, bytesRead);
fos.close();
В первый раз тест выполняется, this.getClass().getResource("/img/dest/someImage.gif")
возвращает null
, хотя файл хорошо создан.
Во второй раз (когда файл уже был создан во время первого тестового прогона, а затем просто перезаписан), он не равен нулю, и тест проходит.
Как заставить его работать в первый раз?
Должен ли я настроить специальную настройку в IntelliJ для автоматического обновления папки, в которой создан файл?
Обратите внимание, что у меня есть эта базовая структура Maven:
--src
----test
------resources
http://stackoverflow.com/a/1011126/1587791 – nakano531