java 外部 while 循环没有迭代
java outer while loop is not iterating
我写了下面的代码,内部 for
循环工作正常,但外部循环没有迭代。这是我的代码:
BufferedReader userfeatures = new BufferedReader(new FileReader("userFeatureVectorsTest.csv"));
BufferedReader itemfeatures = new BufferedReader(new FileReader("ItemFeatureVectorsTest.csv"));
while ((Uline = userfeatures.readLine()) != null)
{
for (String Iline = itemfeatures.readLine(); Iline != null; Iline = itemfeatures.readLine())
{
System.out.println(intersect(Uline, Iline).size());
System.out.println(union(Uline, Iline).size());
}
}
userfeatures.close();
itemfeatures.close();
}
它找到 first line of the first file
与 every line of the 2nd file
的交集和并集,然后停止。但是,我需要继续并为第一个文件的下一行重复相同的过程。所以,我认为我的外部 while 循环存在一些问题,但我找不到问题所在:|
有人可以帮我吗?
谢谢
itemfeatures 必须在每次读取 userfeatures 时在 for 循环之前初始化。否则你的 itemfeatures 在第一次 while iteration
之后被完全读取
正如人们所说,您的 for 循环会完整读取第二个文件,因此您每次都必须重新读取它。
所以在for循环之前重新创建它的Reader,并且在for循环之后也关闭它。
简而言之,每次从文件 1 读取一行时,您都必须打开、完全读取并关闭文件 2 :
BufferedReader userfeatures = new BufferedReader(new FileReader("userFeatureVectorsTest.csv"));
while ((Uline = userfeatures.readLine()) != null)
{
BufferedReader itemfeatures = new BufferedReader(new FileReader("ItemFeatureVectorsTest.csv"));
for (String Iline = itemfeatures.readLine(); Iline != null; Iline = itemfeatures.readLine())
{
System.out.println(intersect(Uline, Iline).size());
System.out.println(union(Uline, Iline).size());
}
itemfeatures.close();
}
userfeatures.close();
}
我写了下面的代码,内部 for
循环工作正常,但外部循环没有迭代。这是我的代码:
BufferedReader userfeatures = new BufferedReader(new FileReader("userFeatureVectorsTest.csv"));
BufferedReader itemfeatures = new BufferedReader(new FileReader("ItemFeatureVectorsTest.csv"));
while ((Uline = userfeatures.readLine()) != null)
{
for (String Iline = itemfeatures.readLine(); Iline != null; Iline = itemfeatures.readLine())
{
System.out.println(intersect(Uline, Iline).size());
System.out.println(union(Uline, Iline).size());
}
}
userfeatures.close();
itemfeatures.close();
}
它找到 first line of the first file
与 every line of the 2nd file
的交集和并集,然后停止。但是,我需要继续并为第一个文件的下一行重复相同的过程。所以,我认为我的外部 while 循环存在一些问题,但我找不到问题所在:|
有人可以帮我吗?
谢谢
itemfeatures 必须在每次读取 userfeatures 时在 for 循环之前初始化。否则你的 itemfeatures 在第一次 while iteration
之后被完全读取正如人们所说,您的 for 循环会完整读取第二个文件,因此您每次都必须重新读取它。
所以在for循环之前重新创建它的Reader,并且在for循环之后也关闭它。
简而言之,每次从文件 1 读取一行时,您都必须打开、完全读取并关闭文件 2 :
BufferedReader userfeatures = new BufferedReader(new FileReader("userFeatureVectorsTest.csv"));
while ((Uline = userfeatures.readLine()) != null)
{
BufferedReader itemfeatures = new BufferedReader(new FileReader("ItemFeatureVectorsTest.csv"));
for (String Iline = itemfeatures.readLine(); Iline != null; Iline = itemfeatures.readLine())
{
System.out.println(intersect(Uline, Iline).size());
System.out.println(union(Uline, Iline).size());
}
itemfeatures.close();
}
userfeatures.close();
}