我有一個程序用於讀取我的文件夾中的所有文件,並將這些文件合併到文件中並將它們放到一個新文件夾中。一些文件沒有被拉入,我不知道爲什麼。爲什麼我的程序沒有從文件夾中提取文件
文件名是wonder1.txt,wonder2.txt,wonder3.txt和wonder4.txt,文件夾名稱是Alice,但只有少數文件實際位於新文件夾中。
import java.io.*;
import java.util.Scanner;
import java.util.*;
import java.lang.*;
import java.io.PrintWriter;
public class alice {
public static void main(String[] args) throws FileNotFoundException, IOException {
File folder = new File("/Users/DAndre/Desktop/Alice");
//Reads in all the files in that folder
for (final File fileEntry : folder.listFiles()) {
String fileName = fileEntry.getAbsolutePath();
BufferedReader br = new BufferedReader(new FileReader(fileName));
try {
StringBuilder stringBuilder = new StringBuilder();
String line = br.readLine();
while (line != null) {
stringBuilder.append(line);
stringBuilder.append("\n");
line = br.readLine();
}
/**
* Pass original file content as string to another method which
* creates new file with same content.
*/
newFile(stringBuilder.toString());
} finally {
br.close();
}
}
}
public static void newFile(String fileContent) {
try {
String newFileLocation = "/Users/DAndre/Desktop/final/final_copy.txt";
PrintWriter writer = new PrintWriter(newFileLocation);
writer.write(fileContent);//Writes original file content into new file
writer.close();
System.out.println("File Created");
} catch (Exception e) {
e.printStackTrace();
}
}
}
讓我猜測,只有一個文件在'final_copy.txt'中?也許是因爲新的PrintWriter(newFileLocation);會截斷給定文件的內容,如果它已經存在了,你可以在[JavaDoc](https://docs.oracle.com/javase/7/文檔/ API/JAVA/IO/PrintWriter.html#的PrintWriter%28java.lang.String%29)。 – Tom 2014-11-14 19:32:14
另外,你在說「'文件夾= ....'」。我認爲你需要一些有Folder對象的東西,而不是File對象。因爲你正在做'新的文件(/用戶/ DAndre /桌面/愛麗絲)',但在我看來,給出的路徑是一個文件夾,而不是文件。 – ha9u63ar 2014-11-14 19:33:01
@hagubear我的朋友可能不是真的。它說:文件和目錄路徑名的抽象表示:Doc:https://docs.oracle.com/javase/7/docs/api/java/io/File.html – guness 2014-11-14 19:33:52