我任何一个都从同时读取((行= reader1.readLine())!=空):
BufferedReader reader1 = new BufferedReader(new InputStreamReader(
new FileInputStream(DEST2),charset));
任一 同时(crunchifyIterator.hasNext()):
List<String> list = new ArrayList<>();
Iterator<String> crunchifyIterator = list.iterator();
是否可以执行以下操作:
if (list !=null) {
Iterator<String> crunchifyIterator = list.iterator();
while (crunchifyIterator.hasNext()) {
//code
}
}
else
while ((line = reader1.readLine()) != null)
{
//code
}
只能在一段时间内吗?
答案 0 :(得分:0)
您可以根据输入类型使用布尔集,然后在一段时间内使用
while ((isReadingFromFile && (reader1.reader1.readLine() != null)) ||
crunchifyIterator.hasNext()) {
我不确定这是最好的选择,但是如果您想在2个循环之间共享代码,最好将while
循环内的代码移至私有方法
if (...) {
while (crunchifyIterator.hasNext()){
handleLine(crunchifyIterator.next());
}
} else {
while ((line = reader1.readLine()) != null) {
handleLine(line);
}
}
答案 1 :(得分:0)
您可以执行以下操作:
Iterator<String> crunchifyIterator = list.iterator();
while (
(list!=null && crunchifyIterator.hasNext()) ||
(list==null && (line = reader1.readLine()) != null)
){
//code
}
但是,如果代码修改了列表,它将无法正常工作。如果列表更改,则应将列表副本保存在变量中,并在条件而不是列表中使用它。