SpringMultipartFileをファイルに変換する
1. 概要
このクイックチュートリアルでは、SpringMultipartFileをファイルに変換するさまざまな方法について説明します。
2. MultipartFile#getBytes
MultipartFileには、ファイルの内容のバイト配列を返すgetBytes()メソッドがあります。 このメソッドを使用して、バイトをファイルに書き込む:
MultipartFile multipartFile = new MockMultipartFile("sourceFile.tmp", "Hello World".getBytes());
File file = new File("src/main/resources/targetFile.tmp");
try (OutputStream os = new FileOutputStream(file)) {
os.write(multipartFile.getBytes());
}
assertThat(FileUtils.readFileToString(new File("src/main/resources/targetFile.tmp"), "UTF-8"))
.isEqualTo("Hello World");
getBytes()メソッドは、ファイルハッシュの計算など、ディスクに書き込む前にファイルに対して追加の操作を実行するインスタンスに役立ちます。
3. MultipartFile#getInputStream
次に、 MultipartFileのgetInputStream()メソッドを見てみましょう。
MultipartFile multipartFile = new MockMultipartFile("sourceFile.tmp", "Hello World".getBytes());
InputStream initialStream = multipartFile.getInputStream();
byte[] buffer = new byte[initialStream.available()];
initialStream.read(buffer);
File targetFile = new File("src/main/resources/targetFile.tmp");
try (OutputStream outStream = new FileOutputStream(targetFile)) {
outStream.write(buffer);
}
assertThat(FileUtils.readFileToString(new File("src/main/resources/targetFile.tmp"), "UTF-8"))
.isEqualTo("Hello World");
ここでは、 getInputStream()メソッドを使用して InputStream を取得し、 InputStream、からバイトを読み取り、byte[に格納します。 ]バッファ。 次に、FileとOutputStreamを作成して、bufferの内容を書き込みます。
getInputStream()アプローチは、InputStreamを別の
4. MultipartFile#transferTo
最後に、 MultipartFileのtransferTo()メソッドを見てみましょう。
MultipartFile multipartFile = new MockMultipartFile("sourceFile.tmp", "Hello World".getBytes());
File file = new File("src/main/resources/targetFile.tmp");
multipartFile.transferTo(file);
assertThat(FileUtils.readFileToString(new File("src/main/resources/targetFile.tmp"), "UTF-8"))
.isEqualTo("Hello World");
transferTo()メソッドを使用して、バイトを書き込む File を作成し、そのファイルを transferTo()に渡すだけです。方法。
transferTo()メソッドは、MultipartFileをファイルに書き込むだけでよい場合に便利です。
5. 結論
このチュートリアルでは、Spring MultipartFileをFileに変換する方法について説明しました。
いつものように、すべてのコード例はGitHubのにあります。