何时在 Java 9 中使用 InputStream 的 readAllBytes() 方法?


从 Java 9 开始,可以使用 InputStream 类的 readAllBytes() 方法将所有字节读入字节数组。此方法一次从 InputStream 对象读取所有字节,并且在读取完所有剩余字节以及检测到流结尾之前一直处于阻塞状态,或者引发异常。

reallAllBytes() 方法无法自动关闭 InputStream 实例。当它达到流结尾时,此方法的进一步调用可能会返回一个 空字节数组。 对于将所有字节读入字节数组的方便情况,我们可以使用此方法,而不适用于读取具有大量数据输入流。

语法

public byte[] readAllBytes() throws IOException

在以下示例中,我们在“C:\Temp ”文件夹中创建了一个“Technology.txt ”文件,其中包含简单数据:{“JAVA”, “PYTHON”, “JAVASCRIPT”, “SELENIUM”, “SCALA”}。

示例

import java.nio.*;
import java.nio.file.*;
import java.io.*;
import java.util.stream.*;
import java.nio.charset.StandardCharsets;

public class ReadAllBytesMethodTest {
   public static void main(String args[]) {
      try(InputStream stream = Files.newInputStream(Paths.get("C://Temp//Technology.txt"))) {
         // Convert stream to string
         String contents = new String(stream.readAllBytes(), StandardCharsets.UTF_8);

         // To print the string content
         System.out.println(contents);
      } catch(IOException ioe) {
         ioe.printStackTrace();
      }
   }
}

输出

"JAVA", "PYTHON", "JAVASCRIPT", "SELENIUM", "SCALA"

更新于:28-2 月-2020

8K+ 查看次数

开启你的职业生涯

通过完成课程获得认证

开始
广告