Pretvaranje proljetne datoteke MultipartFile u datoteku

1. Pregled

U ovom ćemo brzom vodiču pokriti različite načine pretvaranje proljeća MultipartFile do a Datoteka.

2. MultipartFile # getBytes

MultipartFile ima getBytes () metoda koji vraća bajtni niz sadržaja datoteke. Ovu metodu možemo koristiti za zapisati bajtove u datoteku:

MultipartFile multipartFile = novi MockMultipartFile ("sourceFile.tmp", "Hello World" .getBytes ()); Datoteka datoteke = nova datoteka ("src / main / resources / targetFile.tmp"); probajte (OutputStream os = novi FileOutputStream (datoteka)) {os.write (multipartFile.getBytes ()); } assertThat (FileUtils.readFileToString (nova datoteka ("src / main / resources / targetFile.tmp"), "UTF-8")) .isEqualTo ("Hello World");

The getBytes () metoda je korisna za slučajeve gdje želimo izvršiti dodatne operacije nad datotekom prije upisivanja na disk, poput izračuna heša datoteke.

3. MultipartFile # getInputStream

Dalje, pogledajmo MultipartFile‘S getInputStream () metoda:

MultipartFile multipartFile = novi MockMultipartFile ("sourceFile.tmp", "Hello World" .getBytes ()); InputStream InitialStream = multipartFile.getInputStream (); bajt [] međuspremnik = novi bajt [InitialStream.available ()]; InitialStream.read (međuspremnik); Datoteka targetFile = nova datoteka ("src / main / resources / targetFile.tmp"); probajte (OutputStream outStream = novi FileOutputStream (targetFile)) {outStream.write (međuspremnik); } assertThat (FileUtils.readFileToString (nova datoteka ("src / main / resources / targetFile.tmp"), "UTF-8")) .isEqualTo ("Hello World");

Ovdje koristimo getInputStream () metoda za dobivanje InputStream, pročitajte bajtove iz InputStream, i spremite ih u bajtni [] međuspremnik. Tada kreiramo Datoteka i Izlazni tok napisati pufer sadržaj.

The getInputStream () Pristup je koristan u nekim slučajevima gdje moramo umotati InputStream u drugom InputStream, recimo na primjer a GZipInputStream ako je prenesena datoteka gzipirana.

4. MultipartFile # transferTo

Napokon, pogledajmo MultipartFile‘S transferTo () metoda:

MultipartFile multipartFile = novi MockMultipartFile ("sourceFile.tmp", "Hello World" .getBytes ()); Datoteka datoteke = nova datoteka ("src / main / resources / targetFile.tmp"); multipartFile.transferTo (datoteka); assertThat (FileUtils.readFileToString (nova datoteka ("src / main / resources / targetFile.tmp"), "UTF-8")) .isEqualTo ("Hello World");

Koristiti transferTo () metodu, jednostavno moramo stvoriti Datoteka u koji želimo upisati bajtove, a zatim proslijediti tu datoteku u transferTo () metoda.

The transferTo () metoda je korisna kada MultipartFile potrebno je samo napisati na a Datoteka.

5. Zaključak

U ovom uputstvu istražili smo načine pretvaranja proljeća MultipartFile do a Datoteka.

Kao i obično, svi primjeri koda mogu se naći na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found