[SpringBoot2.4.3] ファイルアップロードのcontroller

import javax.servlet.http.HttpServletResponse;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

@Controller
@RequestMapping("/contract")
public class ContractController {

	@GetMapping("input")
	public String contract() {
		return "contract/input";
	}
	
	@RequestMapping(value="upload", method=RequestMethod.POST)
    public void handle(
            HttpServletResponse response,
            @RequestParam MultipartFile file
            ) {
        if(file.isEmpty()) {
            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
            return;
        }
        try {
            BufferedInputStream in = new BufferedInputStream(file.getInputStream());
            BufferedOutputStream out = new BufferedOutputStream(
                    new FileOutputStream(file.getOriginalFilename()));
        } catch (IOException e) {
            throw new RuntimeException("Error uploading file.", e);
        }
    }
}

html

<form action="/contract/upload" method="post" enctype="multipart/form-data">
    <div class="form-group">
    <div class="custom-file">
      <input type="file" name="file" class="custom-file-input" id="inputFile">
    </div>
  </div>
  <br>
<button type="submit" class="btn btn-primary" id="upload" value="upload">登録</button>	
</form>

BufferedInputStreamとBufferedOutputStreamの使い方がイマイチよくわからんな。。