首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将Java InputStream的内容写入OutputStream的简便方法

将Java InputStream的内容写入OutputStream的简便方法是使用Java的IO库中的java.nio包中的java.nio.channels.Channelsjava.nio.channels.WritableByteChannel接口。具体实现如下:

代码语言:java
复制
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.channels.Channels;
import java.nio.channels.WritableByteChannel;

public class InputStreamToOutputStream {
    public static void copy(InputStream input, OutputStream output) {
        WritableByteChannel outChannel = Channels.newChannel(output);
        try {
            byte[] buffer = new byte[4096];
            int bytesRead;
            while ((bytesRead = input.read(buffer)) != -1) {
                outChannel.write(ByteBuffer.wrap(buffer, 0, bytesRead));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                outChannel.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

这个方法将InputStream中的内容复制到OutputStream中,使用了Java的NIO库,可以有效地处理大量数据。在使用时,只需要将InputStream和OutputStream传递给copy方法即可。

代码语言:java
复制
InputStream input = new FileInputStream("input.txt");
OutputStream output = new FileOutputStream("output.txt");
InputStreamToOutputStream.copy(input, output);

这个方法可以用于处理各种类型的InputStream和OutputStream,包括文件、网络连接、内存缓冲区等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java基础io流——OutputStreamInputStream故事(温故知新)

如果数据所在文件通过windows自带记事本打开并能读懂里面的内容,就用字符流,其他用字节流。 如果你什么都不知道,就用字节流。...IO流常用基类 字节流抽象基类: InputStreamOutputStream。 字符流抽象基类: Reader , Writer。...OutputStream子类FileOutputStream 构造方法: FileOutputStream(File file) FileOutputStream(String name) 推荐第二种构造方法...,再利用输出流读取到字节写出到另一个文件中(不存在会自动创建) package io2; import java.io.FileInputStream; import java.io.FileNotFoundException...构造方法可以指定缓冲区大小,但是我们一般用不上,因为默认缓冲区大小就足够了。 为什么不传递一个具体文件或者文件路径,而是传递一个OutputStream对象呢?

88320

java基础io流——OutputStreamInputStream故事(温故知新)

参考链接: Java InputStream类 io流概述:  IO流用来处理设备之间数据传输,上传文件和下载文件,Java对数据操作是通过流方式,Java用于操作流对象都在IO包中。 ...如果数据所在文件通过windows自带记事本打开并能读懂里面的内容,就用字符流,其他用字节流。  如果你什么都不知道,就用字节流。 ...OutputStream子类FileOutputStream  构造方法:  FileOutputStream(File file)  FileOutputStream(String name)  推荐第二种构造方法...,再利用输出流读取到字节写出到另一个文件中(不存在会自动创建)  package io2; import java.io.FileInputStream; import java.io.FileNotFoundException...构造方法可以指定缓冲区大小,但是我们一般用不上,因为默认缓冲区大小就足够了。为什么不传递一个具体文件或者文件路径,而是传递一个OutputStream对象呢?

63640
  • Java文件IO流操作总结

    JavaIO操作涉及到概念及相关类很多,很容易弄混,今天特来整理总结一下,并附上一份完整文件操作代码。...2、流仅仅只是一个连续数据流。流中数据只能够顺序访问。当达到流末尾时,返回-1。 3、InputStreamread()方法返回一个字节大小,返回值范围在0到255之间。...如果InputStream内可读数据不足以填满字节数组,那么数组剩余部分包含本次读取之前数据。记得检查有多少数据实际被写入到了字节数组中。...6、read(byte, int offset, int length)同样数据读取到字节数组中,不同是,该方法从数组offset位置开始,并且最多length个字节写入到数组中。...同样地,read(byte, int offset, int length)方法返回一个int变量,表示有多少字节已经被写入到字节数组中,所以请记得在读取数据前检查上一次调用read(byte, int

    31020

    Java文件写入6种方法

    写程序时经常会碰到读写文件场景,在Java中操作文件方法本质上只有两种:字符流和字节流,而他们实现类又有很多,因此,有时候用起来,就会比较乱。...这篇文章系统介绍了Java操作文件几种方式,学习一下, https://www.cnblogs.com/rinack/p/14173936.html FileWriter类实现如下...FileWriter fileWriter = new FileWriter(filepath)) { fileWriter.append(content); } } 只需要传入具体文件路径和待写入内容即可....");  } 了解了缓存区优点之后,咱们回到本文主题,接下来我们用BufferedWriter来文件写入,实现代码如下, /** * 方法 2:使用 BufferedWriter 写文件...,如下图所示, 从上述结果可以看出,每种方法都正常写入了26 MB数据,他们最终执行结果如下图所示, ‍

    2.2K20

    Java-IO流

    Java-IO流 JDK提供了一套用于IO操作框架,为了方便我们开发者使用,就定义了一个像水流一样,根据流传输方向和读取单位,分为字节流InputStreamOutputStream以及字符流Reader...一次性读取同单个读取一样,当没有任何数据可读时,依然会返回-1 通过skip()方法可以跳过指定数量字节 FileInputStream是不支持reset(),虽然有这个方法 write()操作向文件里写入内容...System.out.println(f.getAbsolutePath()); //获取文件绝对路径 } 直接File作为参数传入字节流或是字符流,读取某个文件内容: File file...缓冲流能够提供一个缓冲,提前部分内容存入内存(缓冲区)在下次读取时,如果缓冲区中存在此数据,则无需再去请求外部设备。当向外部设备写入数据时,也是由缓冲区处理,而不是直接向外部设备写入。...,但是我只能往一个OutputStream里输出,但是OutputStream又只支持byte类型,如果要往里面写入内容,进行数据转换就会很麻烦,那么能否有更加简便方式来做这样事情呢 public

    17720

    不学无数 — Java 中 IO 和 NIO

    I :就是从 硬盘 内容读取到 内存 中 O :就是从 内存 内容读取到 硬盘 中 JavaI/O操作类在包 java.io 下面,大概将近有80多个类,但是这些类可以分为三组 基于字节操作I...,例如 Internet 中 Socket 连接 InputStream 类图, OutputStream 类图和这个类似 类功能构造器参数如何使用 ByteArrayInputStream允许内存缓冲区当做...提高速度 DataInputStream允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型 举个简单使用过滤器进行读取一个文件内容并输出,例子如下: publicstaticvoidmain...在某些场合,面向字节流 InputStream 和 OutputStream 才是正确解决方案,特别是在 java.util.zip 类库就是面向字节流而不是面向字符。...clear() 方法在源码中有介绍,此方法不会实际清除在缓冲器数据。 当然上面的方法也可以简便,直接两个通道进行相连只需要调用 transferTo() 方法,这个也是复制文件效果。

    32810

    02_字节流

    以下为 JDK8 版本中字节流族谱图: 具体详情可查看Java API文档。 ? 由上图可以看出,InputStreamOutputStream对于数据源操作往往是成对出现。...其中“装饰器”为其他InputStream类提供有用功能 OutputStream OutputStream决定了数据输出形式。...OutputStream类型表 类 功能 构造器 ByteArrayOutputStream 允许内存缓冲区当做InputStream使用 缓冲区初始化尺寸(可选) FileOutputStream...它们提供了方法字节写入到文件和数据以字节形式从文件中读取出来。 一般情形下,文件字节流操作遵循以下几个步骤: (1)使用File类绑定一个文件。 (2)把File对象绑定到流对象上。...DataOutputStream 例 格式化订单数据写入到文件 import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream

    51070

    Java IO(IO流)-1

    IO流 第一部分 (outputStream/InputStream Writer/Redaer) IO流对象中输入和输出是相辅相成,输出什么,就可以输入什么....(FileOutputStream 文件输出流) java->JVM->OS 流对象使用基本步骤 创建流子类对象,绑定数据目的地(文件路径) 使用write方法写或read方法读 close()方法关闭流对象...write(int b) 指定字节写入输出流,一次写入一个,传递ASCII码(负数是汉字) write(byte[] b) b.length个字节写入输出流 write(byte b[],int...文件输出流,是用于数据写入 File输出流。...构造方法构造方法可以创建文件 默认如果存在相同文件,会覆盖, 可以设置 boolean append来修改位追加内容 FileOutputStram(File file) 传递一个File FileOutputStream

    1.4K00

    java---文件操作

    (new String(data)); } } OutputStream输出流 是程序把程序中内容写入到外部文件中 FileOutputStream(File file) 创建文件输出流以写入由指定...void write(int b) 指定字节写入此文件输出流。...; //info.getBytes() 是字符转换成一个byte类型数组 , 这个数组中内容就是这段字符串对应byte类型数据 outputStream.write...文件以byte形式写入OutputStream,写完以有可能内容有一部分并没有真正写进文件里,而是停留在缓冲区中,这时刷新缓冲区目的是为了缓冲区中内容强制性弹出来,写入文件,所以在关闭流之前...序列化:是程序中数据,基本数据类型,引用数据类型(对象,集合,数组等等)这些数据以Java格式存入到文件中。 反序列化:就是文件中数据,读取出来封装为Java对象,集合,数组等等。

    23810

    Java IO 总结

    不管写入时是数据分多次写入,还是作为一个整体一次写入,读取时效果都是完全一样。 简而言之:数据流是一组有序,有起点和终点字节数据序列。包括输入流和输出流。...I/O流 java.io包里有4个基本类:InputStreamOutputStream及Reader、Writer类,它们分别处理字节流和字符流。 其他各种各样流都是由这4个派生出来。 ?...:把多个InputStream合并为一个InputStream OutputStream OutputStream提供了3个write方法来做数据输出,这个是和InputStream是相对应。   ...AtomicityTest.java内容打印到显示器 方法一: BufferedReader in = new BufferedReader(new FileReader("AtomicityTest.java...A内容拷贝到文件B 标准输入内容写入文件

    55820

    Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream

    //在这里提一句,`BufferedOutputStream`没有自己`close`方法,当他调用父类`FilterOutputStrem`方法关闭时,会间接调用自己实现`flush`方法buf...一个字节写入到buf中 write(byte[] b, int off, int len); b一部分写入buf中 那么什么时候flush()才有效呢?...BufferedOutputStream每一次write其实是内容写入byte[],当buffer容量到达上限时,会触发真正磁盘写入。 而另一种触发磁盘写入办法就是调用flush()了。...; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

    85420

    java常用io流_io流java

    1.基本概念 IO:Java对数据操作是通过流方式,IO流用来处理设备之间数据传输,上传文件和下载文件,Java用于操作流对象都在IO包中。...常用方法: // b.length 个字节从指定 byte 数组写入此输出流 void write(byte[] b) // 指定 byte 数组中从偏移量 off 开始 len 个字节写入此输出流...构造方法: // 创建一个新缓冲输出流,以数据写入指定底层输出流 BufferedOutputStream(OutputStream out) // 创建一个新缓冲输出流,以具有指定缓冲区大小数据写入指定底层输出流...BufferedOutputStream(OutputStream out, int size) 常用方法: // 指定 byte 数组中从偏移量 off 开始 len 个字节写入此缓冲输出流...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

    1.6K20

    Java IO学习笔记二

    关闭输入/输出 字节流 字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStreamInputStream FileOutputStream 文件输出流是用于数据写入...特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及文件已经打开,则此类中构造方法失败。...常用方法 close() 关闭文件输出流 void write(byte[] b) b.length 个字节从指定 byte 数组写入此文件输出流中。...常用方法 int read() 从输入流中读取数据字节,如果到达文件末尾就返回-1 int read(byte[] b) 文件中内容读取到byte数组中,如果到达文件末尾返回-1 int...常用方法 write(String str) 字符写入文件 write(String str,int offest,int len) 截取字符串部分内容写入文件 write(int c)

    40840

    Java IO流之BufferedOutputStream类,让Java文件操作更高效!

    此外,还可以使用flush()方法缓冲区中数据强制写出。...write()方法:向缓冲区中写入字节,当缓冲区满了之后,会将缓冲区中数据一次性写出。flush()方法:刷新缓冲区,缓冲区中数据强制写出。close()方法:关闭输出流,释放资源。...写入到文件output.txt中,然后再使用FileInputStream类读取该文件,并将读取到内容转化为字符串与原始字符串进行比较,以验证BufferedOutputStream类正确性和效率。...然后创建一个输出流对象 outputStream,并把文件对象作为参数传入 FileOutputStream 构造方法中,用于数据写入文件。...使用 bufferedOutputStream write() 方法字节数组写入缓冲区,使用 flush() 方法刷新缓冲区并将数据写入文件,最后使用 close() 方法关闭缓冲区和输出流。

    71251
    领券