我需要对一个文件进行处理,首先计算行数并与一个值进行比较。
下一步是逐行读取文件并进行验证。
如果第一个过程仅通过,我需要进行第二个过程。
我使用 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/