[英]printing out a 2 text files in java
这是我的代码,用于打印两个文本文件,但是输出也不正确,它会不断重复打印第一行,例如文件中的文本是:1 2 3 4 1 2 3
当我调用该函数时,输出将是:1 1 1 1 1 1 1
public static void printUSER()
{
BufferedReader br = null;
BufferedReader br1 = null;
try {
br = new BufferedReader(new FileReader("info.txt"));
br1 = new BufferedReader(new FileReader("info AI.txt"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String line = null;
String line1 = null;
try {
while((line = br.readLine())!= null) {
while((line1 = br1.readLine())!= null){
System.out.println(line+" === "+line1);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
您将循环放入第一个文件(A)中的第二个文件(B)中,因此打印出B的每一行与A中的第一行成对; 它最终将完成读取B的操作,返回并读取A的下一行,但是由于您已读取所有的B,因此不会打印任何新内容。
只是因为您的示例仅引用了一个文件,所以尚不清楚您要尝试执行的操作。 并且输出中不应该包含=
? 和换行符?
信息AI.txt的读取必须重新开始。
对于所有行组合:
try (BufferedReader br = new BufferedReader(new FileReader("info.txt"))) {
while ((line = br.readLine()) != null) {
try (BufferedReader br1 = new BufferedReader(new FileReader("info AI.txt"))) {
while ((line1 = br1.readLine()) != null) {
对于一个接一个的文件:
try (BufferedReader br = new BufferedReader(new FileReader("info.txt"))) {
while ((line = br.readLine()) != null) {
}
}
try (BufferedReader br1 = new BufferedReader(new FileReader("info AI.txt"))) {
while ((line1 = br1.readLine()) != null) {
}
}
对于并排的线:
try (BufferedReader br = new BufferedReader(new FileReader("info.txt"));
BufferedReader br1 = new BufferedReader(new FileReader("info AI.txt"))) {
while ((line = br.readLine()) != null
|| (line1 = br1.readLine()) != null) {
if (line != null) {
}
if (line1 != null) {
}
}
}
这是因为双while循环,第一轮的每一轮,第二轮重启。 除非您要递归读取br每一行的整个br1,否则只需通过if语句更改内部while语句即可:
public static void printUSER()
{
BufferedReader br = null;
BufferedReader br1 = null;
try {
br = new BufferedReader(new FileReader("info.txt"));
br1 = new BufferedReader(new FileReader("info AI.txt"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String line = null;
String line1 = null;
try {
while((line = br.readLine())!= null) {
line1 = br1.readLine()
if(line1 != null){
System.out.println(line+" === "+line1);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.