FileUtils

简介: FileUtils
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.util.Base64;
import static org.apache.commons.io.FileUtils.openOutputStream;
public class FileUtils {
  /**
   * 创建临时文件.
   *
   * @param inputStream
   *            输入文件流
   * @param name
   *            文件名
   * @param ext
   *            扩展名
   * @param tmpDirFile
   *            临时文件夹目录
   */
  public static File createTmpFile(InputStream inputStream, String name, String ext, File tmpDirFile)
      throws IOException {
    File resultFile = File.createTempFile(name, '.' + ext, tmpDirFile);
    resultFile.deleteOnExit();
    copyToFile(inputStream, resultFile);
    return resultFile;
  }
  private static void copyToFile(final InputStream source, final File destination) throws IOException {
    try (InputStream in = source; OutputStream out = openOutputStream(destination)) {
      IOUtils.copy(in, out);
    }
  }
  /**
   * 创建临时文件.
   *
   * @param inputStream
   *            输入文件流
   * @param name
   *            文件名
   * @param ext
   *            扩展名
   */
  public static File createTmpFile(InputStream inputStream, String name, String ext) throws IOException {
    return createTmpFile(inputStream, name, ext, Files.createTempDirectory("weixin-java-tools-temp").toFile());
  }
  /**
   * 文件流生成base64
   *
   * @param in
   *            文件流
   * @return base64编码
   */
  public static String imageToBase64ByStream(InputStream in) {
    byte[] data = null;
    // 读取图片字节数组
    try {
      data = new byte[in.available()];
      in.read(data);
      // 返回Base64编码过的字节数组字符串
      return Base64.getEncoder().encodeToString(data);
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (in != null) {
        try {
          in.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
    return null;
  }
}
相关文章
|
6月前
|
Java
FileInputStream和FileOutputStream
FileInputStream和FileOutputStream
49 0
|
Java
File操作-InputStream/OutputStream及是否创建文件
File操作-InputStream/OutputStream及是否创建文件
79 0
File操作 - RandomAccessFile使用详解
File操作 - RandomAccessFile使用详解
90 0
File操作-FileReader(FileWriter)/BufferedReader(Writer)
File操作-FileReader(FileWriter)/BufferedReader(Writer)
53 0
|
存储 Java
FileInputStream 你了解多少
FileInputStream 你了解多少
|
存储 索引
RandomAccessFile详解
此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。
1560 0
10hutool实战:FileUtil 文件工具类(获取输出流)
10hutool实战:FileUtil 文件工具类(获取输出流)
684 0
10hutool实战:FileUtil 文件工具类(获取输出流)
|
存储 安全 Java
DataOutputStream和DataInputStream(八)
在Java开发中,如果没有使用数据库时,常常会将内容保存在文件上面。 如用户的个人信息。 在保存的时候,需要有一定的格式进行保存,如用 \t 分开员工的每一个信息,用\n 分开每一个员工。 读取的时候,就必须按照相应的格式进行读取。
206 0
DataOutputStream和DataInputStream(八)
8hutool实战:FileUtil 文件工具类(获取输入流)
8hutool实战:FileUtil 文件工具类(获取输入流)
369 0
8hutool实战:FileUtil 文件工具类(获取输入流)