InputStream的read方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InputStream的read方法相关的知识,希望对你有一定的参考价值。

InputStream的read方法,带参的和不带参的返回值有啥区别,比如我输入1,不带参数返回asc码是49,我要是传一个byte数组进去返回是3为啥?

1、Apache Commons IO库有几个流操作,可以显著减少需要编写的样板代码量。

2、下图显示了IOUtils类的copy方法的使用步骤。

3、可以看看IOutils.copy方法之后输出的日志如下图。

4、IOUtils类上的copy方法被重载,以便在将字节源从一个位置复制到另一个位置时提供尽可能多的灵活性。您可以使用它将阅读器连接到编写器,将阅读器连接到OutputStream。

5、IOUtils提供了一种使用InputStream将其转换为字符串的方法,如下图所示。

参考技术A read()代表读入一个字节,read(byte[] b)代表读入b个字节并存放在b中,你看看帮助文档(看文档很重要),这种事不用来百度问。追问

b里面有三个数据后两个为什么是 13 和10?

追答

read的返回值指读取了几个字节(length),13就是读了13个字节

本回答被提问者采纳
参考技术B   从输入流中读取数据最常用的方法基本上就是如下 3 个 read() 方法了:
  1 、 read () 方法,这个方法 从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1 。
  2 、 read (byte[] b,int off,int len) 方法, 将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取的字节也可能小于该值。以整数形式返回实际读取的字节数。
  3 、 read (byte[] b) 方法, 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回实际读取的字节数。

Java——Read/convert an InputStream to a String

获取 InputStream 并将其转换为String的简单方法。

添加commons-io-2.4.jar

import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;

public class StringFromFile {

    public static void main(String[] args) throws IOException {
        InputStream inputStream = StringFromFile.class.getResourceAsStream("2.txt");
        String myString = IOUtils.toString(inputStream, "UTF-8");
        
        System.out.println(myString);
        
    }

}

来源: http://stackoverflow.com/questions/309424/read-convert-an-inputstream-to-a-string

以上是关于InputStream的read方法的主要内容,如果未能解决你的问题,请参考以下文章

从 OutputStream 创建 InputStream 的最有效方法

Java学习之InputStream中read()与read(byte[] b)

InputStream的read方法

java InputStream读取数据问题

java InputStream读取数据问题

InputStream如何读取完整数据