java 文件转inputstream_把文本转换成表格

java 文件转inputstream_把文本转换成表格以下是一些将InputStream转换为FileJava示例手动将InputStream复制到FileOutputStreamApacheCommonsIO–FileUtils.copyInputStreamToFileJava1.7NIOFiles.copy1.FileOutputStream1.1我们必须将数据从InputStream手动复…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

以下是一些将InputStream转换为File Java示例

  1. 手动将InputStream复制到FileOutputStream
  2. Apache Commons IO – FileUtils.copyInputStreamToFile
  3. Java 1.7 NIO Files.copy

1. FileOutputStream

1.1我们必须将数据从InputStream手动复制到OutputStream

InputStreamToFile.java
package com.mkyong;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;

public class InputStreamToFile {

    private static final String FILE_TO = "d:\\download\\google.txt";

    public static void main(String[] args) throws IOException {

        URI u = URI.create("https://www.google.com/");
        try (InputStream inputStream = u.toURL().openStream()) {
            File file = new File(FILE_TO);
            copyInputStreamToFile(inputStream, file);
        }
    }

    // InputStream -> File
    private static void copyInputStreamToFile(InputStream inputStream, File file) 
		throws IOException {

        try (FileOutputStream outputStream = new FileOutputStream(file)) {

            int read;
            byte[] bytes = new byte[1024];

            while ((read = inputStream.read(bytes)) != -1) {
                outputStream.write(bytes, 0, read);
            }

			// commons-io
            //IOUtils.copy(inputStream, outputStream);

        }

    }

}

2. Apache Commons IO

2.1 FileUtils.copyInputStreamToFile在Apache Commons IO中可用

pom.xml
<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
		<version>2.6</version>
	</dependency>
InputStreamToFile2.java
package com.mkyong;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;

public class InputStreamToFile2 {

    private static final String FILE_TO = "d:\\download\\google.txt";

    public static void main(String[] args) throws IOException {

        URI u = URI.create("https://www.google.com/");
        try (InputStream inputStream = u.toURL().openStream()) {

            File file = new File(FILE_TO);

			// commons-io
            FileUtils.copyInputStreamToFile(inputStream, file);
        }

    }

}

3. Java 1.7 NIO

3.1如果只想将inputStream保存到某个文件中,请尝试使用Java 1.7 NIO Files.copy

InputStreamToFile3.java
package com.mkyong;

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Paths;

public class InputStreamToFile3 {

    private static final String FILE_TO = "d:\\download\\google.txt";

    public static void main(String[] args) throws IOException {

        URI u = URI.create("https://www.google.com/");
        try (InputStream inputStream = u.toURL().openStream()) {

			//Java 1.7
            Files.copy(inputStream, Paths.get(FILE_TO));

        }

    }

}

4.旧时光

4.1在过去的Java 1.7之前,我们必须手动关闭所有资源。

InputStreamToFile4.java
package com.mkyong;

import java.io.*;

public class InputStreamToFile4 {

    public static void main(String[] args) {

        InputStream inputStream = null;
        OutputStream outputStream = null;

        try {
            // read this file into InputStream
            inputStream = new FileInputStream("/Users/mkyong/holder.js");

            // write the inputStream to a FileOutputStream
            outputStream = new FileOutputStream(new File("/Users/mkyong/holder-new.js"));

            int read = 0;
            byte[] bytes = new byte[1024];

            while ((read = inputStream.read(bytes)) != -1) {
                outputStream.write(bytes, 0, read);
            }

            System.out.println("Done!");

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (outputStream != null) {
                try {
                    outputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        }
    }

}

5.将文件转换为InputStream

这很容易:

File file = new File("d:\\download\\google.txt");
    InputStream inputStream = new FileInputStream(file);

注意
您可能对此String的InputStream感兴趣

参考文献

翻译自: https://mkyong.com/java/how-to-convert-inputstream-to-file-in-java/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190970.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 成功解决AttributeError: ‘str‘ object has no attribute ‘decode‘「建议收藏」

    成功解决AttributeError: ‘str‘ object has no attribute ‘decode‘「建议收藏」成功解决AttributeError:’str’objecthasnoattribute’decode’目录解决问题解决思路解决方法解决问题AttributeError:’str’objecthasnoattribute’decode’…

  • linux中如何用ftp命令下载文件,linux中ftp下载文件命令的用法

    linux中如何用ftp命令下载文件,linux中ftp下载文件命令的用法linxu下的ftp命令是用来下载文件或者上传文件的,下面由学习啦小编为大家整理了linux的ftp下载文件命令的用法的相关知识,希望对大家有帮助!一、linux中的ftp下载文件命令的用法从远程ftp服务器下载文件的命令格式:get远程ftp服务器上当前目录下要下载的文件名[下载到本地机器上当前目录时的文件名],如:getnmap_file[nmap]意思是把远程ftp服务器下的文件nm…

  • win10中安装centos7双系统

    win10中安装centos7双系统不能识别ntfs盘怎么处理。./configuremakemakeinstall用fdisk-l查看下分区表里ntfs盘都是什么盘。为这里在win10下的ntfs盘分别为sda1、sda2、sda3、sda5、sda6添加挂载在计算机下mnt文件下中新建几个文件夹分别用来挂在你的ntfs硬盘。这里我在mnt文件夹下新建了study、work、funmoun…

  • Java50个关键字总结「建议收藏」

    Java50个关键字总结「建议收藏」作业一:Java基础知识复习一、关键字总结1.abstract修饰类:abstract修饰类,这个类就是抽象类,抽象类中可以有非抽象变量和成员变量,也可以有普通方法、构造方法。但是不能实例化,只能被子类继承。如果子类不是抽象类,则必须重写父类的抽象方法。publicabstractclassAbstractList&lt;E&gt;e…

  • Vue中 $attrs、$listeners 详解及使用

    Vue中 $attrs、$listeners 详解及使用1.前言多级组件嵌套需要传递数据时,通常使用的方法是通过vuex。如果仅仅是传递数据,而不做中间处理,使用vuex处理,未免有点杀鸡用牛刀。Vue2.4版本提供了另一种方法,使用v-bind=”$attrs”,将父组件中不被认为props特性绑定的属性传入子组件中,通常配合interitAttrs选项一起使用。之所以要提到这两个属性,是因为两者的出现使得组件之间跨组件的通信在不依赖vuex和事件总线的情况下变得简洁,业务清晰。首先分析以下应用场景A组件与B组件

    2022年10月18日
  • install application_installing

    install application_installinglmdbinstallation

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号