Zapisujesz pliki w folderze static. Static domyślnie pakowany do wnętrza jar który jest ReadOnly. Tzn twoja aplikacja zapisuje w folderze projektu ale projekt (zazwyczaj) jest uruchomiany po wcześniejszym spakowaniem aplikacji do jar.
W skrócie widzisz zdjecia po przeładowaniu aplikacji bo zapisujesz bezpośrednio w źródłach projektu. Ale w normalnie działającej aplikacji nie ma prawa to zadziałać.
Tu masz wątek z podobnym problemem:
https://forum.pasja-informatyki.pl/330568/java-spring-usuwanie-pliku-po-wczesniejszym-jego-dodaniu
I moja odpowiedź z tego wątku:
Gdybym miał zakładać w czym leży problem to w tym że podajesz ścieżkę absolutną do folderu static. Folder ten domyślnie jest pakowany do jara i w rzeczywistej aplikacji podejście takie nie zadziała. (Jar jest read-only). Aby zrobić to poprawnie powinieneś wydzielić oddzielny folder który nie jest pakowany do Jara (, np jakiś folder obok folderu src) i podać do niego ścieżke relatywną od roota projeku czyli taką która zaczyna się /folder/ a nie C:/ścieżka/do/InteliJ/Projekt/src/i/tak/dalej/static/