[英]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.