我有一个程序用于读取我的文件夹中的所有文件,并将这些文件合并到文件中并将它们放到一个新文件夹中。一些文件没有被拉入,我不知道为什么。为什么我的程序没有从文件夹中提取文件
文件名是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