Khi tôi muốn ghi toàn bộ nội dung của tệp vào OutputStream
, tôi thường phân bổ bộ đệm dưới dạng byte[]
, sau đó tạo vòng lặp for
thành read
dữ liệu từ tệp InputStream
vào bộ đệm và ghi nội dung đệm vào OutputStream
, cho đến khi InputStream
không còn byte nào.Có cách nào tốt hơn để ghi toàn bộ nội dung của tệp vào OutputStream không?
Điều này có vẻ hơi vụng về với tôi. Có cách nào tốt hơn để làm điều này?
Ngoài ra, tôi luôn không chắc chắn về kích thước bộ đệm. Thông thường, tôi phân bổ 1024 byte, bởi vì nó chỉ cảm thấy tốt. Có cách nào tốt hơn để xác định kích thước bộ đệm hợp lý không?
Trong trường hợp hiện tại, tôi muốn sao chép toàn bộ nội dung của tệp vào luồng đầu ra ghi nội dung của phản hồi HTTP. Vì vậy, đây không phải là câu hỏi về cách sao chép tệp trên hệ thống tệp.
Kiểm tra đơn vị của tôi có thể xác minh những gì được ghi vào OutputStream? ServletOutputStream mockOutput = mock (ServletOutputStream.class); \t \t khi (response.getOutputStream()). ThenReturn (mockOutput); –