java - 相同的输入流可以在流读取器中使用吗

标签 java stream inputstream

我需要对一个文件进行处理,首先计算行数并与一个值进行比较。

下一步是逐行读取文件并进行验证。

如果第一个过程仅通过,我需要进行第二个过程。

我使用 FTP 读取相同的文件。

当我尝试创建不同的输入流时...ftp 正忙于读取当前文件。

像这样:

(is1 = ftp.getFile(feedFileName);)

下面是剩余的:

 InputStream is = null;
LineNumberReader lin = null;
    LineNumberReader lin1 = null;
is = ftp.getFile(feedFileName);  
lin = new LineNumberReader(new InputStreamReader(is));

所以我可以像下面这样使用:

 is1=is;

两个流是否从头到尾都具有文件内容,或者一旦读取第一个流对象,第二个对象就会变为空。

那么剩下的唯一选择就是创建一个新的 ftp 对象来单独读取流吗?

最佳答案

可以,但您需要“倒带”InputStream。首先你需要对其调用mark()方法,然后重置。以下是文档:http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html#reset ()

关于java - 相同的输入流可以在流读取器中使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11902767/

相关文章:

java - Android 常量存放在哪里?

jquery - 使用phonegap将文件作为流上传到cloudinary

json - 如何从文件中传输 JSON?

android - 在本地保存从 InputStream 检索到的图像

java - 读取文件时遇到问题,程序看起来不错,但不明白为什么它输出 null

android - 在 Android 中使用 ClassLoader 动态加载类作为字节数组

java - JAI 渲染操作 : Check for corrupt image without rendering

java - 如何从验证工厂的验证函数中获取变量或变量名称

java - 将 Qualtrics slider 向左/右移动

python - 流期间管道破裂