Một cái gì đó như thế này sẽ hoạt động. Lưu ý rằng để đơn giản hơn, tôi đã sử dụng một tính năng Java 7 (thử khối với tài nguyên có thể đóng được) và IOUtils từ Apache commons-io. Nếu bạn không thể sử dụng chúng, nó sẽ lâu hơn một chút, nhưng ý tưởng tương tự.
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class StreamUtil {
public static final String PREFIX = "stream2file";
public static final String SUFFIX = ".tmp";
public static File stream2file (InputStream in) throws IOException {
final File tempFile = File.createTempFile(PREFIX, SUFFIX);
tempFile.deleteOnExit();
try (FileOutputStream out = new FileOutputStream(tempFile)) {
IOUtils.copy(in, out);
}
return tempFile;
}
}