All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jianggujin.http.response.JFileResponse Maven / Gradle / Ivy

package com.jianggujin.http.response;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

import com.jianggujin.http.util.JDataUtils;

/**
 * 文件响应
 * 
 * @author jianggujin
 *
 */
public class JFileResponse extends JAbstractResponse {
   private File file;

   public JFileResponse() {
      this((File) null);
   }

   public JFileResponse(String path) {
      this(new File(path));
   }

   public JFileResponse(File file) {
      try {
         if (file == null) {
            file = File.createTempFile(UUID.randomUUID().toString(), ".tmp");
            file.deleteOnExit();
         }
         this.file = file;
      } catch (IOException e) {
         throw new RuntimeException(e);
      }
   }

   @Override
   protected void dealData(InputStream stream) throws IOException {
      File parent = file.getParentFile();
      if (parent != null && !parent.exists()) {
         parent.mkdirs();
      }
      FileOutputStream out = new FileOutputStream(file);
      JDataUtils.crossStreams(stream, out);
      out.close();
      this.data = file;
   }

   public String getFile() {
      return (String) this.data;
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy