Mit Java 8.Wie lese ich eine zur Laufzeit erstellte Datei?
Grundsätzlich in einem Unit-Test (JUnit) Ich habe diesen Code:
callSomeCode();
assertTrue(new File(this.getClass().getResource("/img/dest/someImage.gif").getFile()).exists());
In callSomeCode()
, ich habe dies:
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();
Das erste Mal, wenn der Test Läuft, this.getClass().getResource("/img/dest/someImage.gif")
gibt null
zurück, obwohl die Datei gut erstellt ist.
Das zweite Mal (wenn die Datei bereits während des ersten Testlaufs erstellt und dann einfach überschrieben wurde), ist sie nicht null und der Test wird bestanden.
Wie man es das erste Mal arbeiten lässt?
Sollte ich eine spezielle Konfiguration in IntelliJ konfigurieren, um automatisch den Ordner zu aktualisieren, in dem die Datei erstellt wird?
Bitte beachte, dass ich diese grundlegende Maven Struktur haben:
--src
----test
------resources
http://stackoverflow.com/a/1011126/1587791 – nakano531