InputStream (输入流) 与 OutputStream (输出流) 转换

1. InputStream 转 OutputStream

我所了解的InputStream 转 OutputStream 有两种:

  1. 使用原生代码的方式
    * 网上一查一大把,我这里就不介绍了
  2. 使用 commons-io 工具包
    * 介绍这种方法
    * 使用commons-io 中的:
    * IOUtils.copy(InputStream input, OutputStream output)

使用commons-io 中的:
IOUtils.copy(InputStream input, OutputStream output)

使用commons-io 中的:
IOUtils.copy(InputStream input, OutputStream output)

使用commons-io 中的:
IOUtils.copy(InputStream input, OutputStream output)

上面的就已经够了,下面为具体实例。没啥看的。

1.1 使用文件拷贝为例

InputStream 转 OutputStream 我以文件的拷贝为例, 先使用InputStream 把文件读到内存,然后使用 OutputStream 将文件写回磁盘。中间涉及到了InputStream and OutputStream 之间的转换。

当然 InputStream 与 OutputStream 的转换不只是适用与这个场景。

1.1.1 前期准备

  1. 文件的准备
    InputStream (输入流) 与 OutputStream (输出流) 转换_第1张图片
  2. 文件的内容
    InputStream (输入流) 与 OutputStream (输出流) 转换_第2张图片

1.1.2 导入坐标

<dependency>
    <groupId>commons-iogroupId>
    <artifactId>commons-ioartifactId>
    <version>2.2version>
dependency>

1.1.3 编写代码

注意: Java7 以上可用, 会自动关闭资源,如果你不是用的这个,记得关闭资源。

public static void main(String[] args) {

	try(
	    //1. 输入流
	    InputStream inputStream = new FileInputStream("D:\\MyDocuments\\java\\pojects\\temp\\textFile.txt");
	    //2. 输出流
	    OutputStream outputStream = new FileOutputStream("D:\\MyDocuments\\java\\pojects\\temp\\textFileCopy.txt"))
	{
	    //3. 转换
	    IOUtils.copy(inputStream, outputStream);
	
	} catch (Exception e) {
	    e.printStackTrace();
	}
}

1.1.4 效果

InputStream (输入流) 与 OutputStream (输出流) 转换_第3张图片

你可能感兴趣的:(IO流转换)