InputStream转File详解(手把手教你2步搞定)

InputStream转File详解(手把手教你2步搞定)-mikechen

将InputStream转换为File经常在Java开发都会使用,下面详解InputStream转换为File的步骤。

第一步:将InputStream写入临时文件

如下所示:

// 创建一个临时文件 
File tempFile = File.createTempFile("temp", ".tmp"); 

// 将InputStream中的数据写入到临时文件中 
InputStream inputStream = new FileInputStream("input.txt");

 

第二步:将临时文件转换为File对象

如下所示:

// 将临时文件转换为File对象
File file = new File(tempFile.getAbsolutePath());
System.out.println("File: " + file.getAbsolutePath());

 

3.完整的InputStream转换为File

以下是一个完整的InputStream转换为File的示例代码:

import java.io.*;

public class InputStreamToFileDemo {
    public static void main(String[] args) {
        try {
            // 创建一个临时文件
            File tempFile = File.createTempFile("temp", ".tmp");

            // 将InputStream中的数据写入到临时文件中
            InputStream inputStream = new FileInputStream("input.txt");
            OutputStream outputStream = new FileOutputStream(tempFile);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, length);
            }

            // 关闭输入流和输出流
            inputStream.close();
            outputStream.close();

            // 将临时文件转换为File对象
            File file = new File(tempFile.getAbsolutePath());
            System.out.println("File: " + file.getAbsolutePath());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例中,主要就是如下步骤:

  1. 我们首先创建一个临时文件tempFile,然后创建一个InputStream对象inputStream,用于读取名为input.txt的文件。
  2. 接着创建一个OutputStream对象outputStream,用于将读取的内容写入到临时文件中。
  3. 在while循环中,每次从输入流中读取数据,将数据写入到输出流中,当读取的数据长度为-1时,表示数据已经全部读取完毕,结束循环。
  4. 最后,我们关闭输入流和输出流,并通过调用File类的getAbsolutePath()方法将临时文件转换为File对象。

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法