gpt4 book ai didi

java - 无法两次读取相同的InputStream

转载 作者:行者123 更新时间:2023-12-01 16:46:06 24 4
gpt4 key购买 nike

我有一个InputStream作为参数,当我第一次读取它时它工作得很好,但是,读取相同的InputStream不起作用。我就是无法获取 mark()reset()上类。有人知道如何重置这个吗?我正在读取 .txt 文件。该文件包含不会重新出现的敌方对象的生成值,因为输入流标记(?)位于末尾,我猜?

readTxt(InputStream resource){
//resource is a .txt as ResourceStream
arrayList = new BufferedReader(new InputStreamReader(resource,
StandardCharsets.UTF_8)).lines().collect(Collectors.toList());

最佳答案

mark() 仅在输入流支持时才有效(您可以通过 markSupported() 检查。

它并不适用于每个流。

读取输入流的一种方法是将输入流的内容复制到数组并重新读取该数组:

byte[] buffer = new byte[2048];

ByteArrayOutputStream output = new ByteArrayOutputStream();

int byteCount;
while ((byteCount = inputStream.read(buffer)) != -1)
{
output.write(buffer, 0, byteCount);
}
byte[] source = output.toByteArray();

// Now you have ability to reread the "secondary" input stream:
InputStream is = new ByteArrayInputStream(source);

关于java - 无法两次读取相同的InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50331575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com