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