簡體   English   中英

在遞歸Java中寫入文件

[英]Writing to file in recursion java

所以我希望我的程序將所有包含“ .txt”的文件寫入“ out.txt”。 但是wr.close()結束了我的編寫器,它只從一個文件夾而不是從所有文件夾寫入文件。 需要幫忙。

import java.io.*;

public class Prv {  
public static void main(String[] args) throws InterruptedException, IOException{

    String a=".";
    String b="D:\\JavaProjects\\Auditoriski\\.\\Out.txt";
    Pomini(a,b);
}

public static void Pomini(String in, String out) throws IOException {
    File file = new File(in);
    BufferedWriter wr = new BufferedWriter(new FileWriter(out));
    if(file.exists()) {
        File[] subfiles = file.listFiles();
        for(File f : subfiles) {
        if(f.isDirectory()) {
            Pomini(f.getAbsolutePath(), out );
        }
        if(f.getName().contains(".txt")) {
            System.out.print(f.getName());
            System.out.println();
            wr.write(f.getName());
            wr.newLine();
        }
        }

    }           
    wr.close();

}
}

您只需要創建BufferedWriter並將其關閉到Pomini方法之外,然后將其作為參數傳遞即可。

try (BufferedWriter wr = new BufferedWriter(new FileWriter(out));) {
  Pomini(a, b, wr);
}

public static void Pomini(String in, String out, BufferedWriter wr) throws IOException {
    File file = new File(in);
    if(file.exists()) {
        File[] subfiles = file.listFiles();
        for(File f : subfiles) {
            if(f.isDirectory()) {
                Pomini(f.getAbsolutePath(), out, wr);
            }
        if(f.getName().contains(".txt")) {
            System.out.print(f.getName());
            System.out.println();
            wr.write(f.getName());
            wr.newLine();
        }
     }

  }           

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM