好吧,直到我已经编写了一个简单的应用程序,在该应用程序中,它获取了它经过的文件的第一行的字符串,然后我将它记录到它所获得的所有字符串txt文件但是当它记录时它只是继续用其他文件中的新字符串替换自己。
我希望它记录它获得的字符串,然后在新行中从另一个文件中写入新字符串,但我似乎无法使其工作。
对于任何可以帮助我解决问题的人,我都非常感激。
public static void main(String[] args) throws Exception {
File dir = new File("C://Users//Test//Desktop//lists");
if (dir.isDirectory()) {
for (File file : dir.listFiles()) {
String line1 = Files.readAllLines(Paths.get(file.getAbsolutePath())).get(0);
BufferedWriter writer = new BufferedWriter(new FileWriter("C://Users//Test//Desktop//logged.txt"));
writer.write(line1);
writer.newLine();
writer.close();
}
}
}
答案 0 :(得分:0)
您每次new
writer
。在new
开始之前添加for
行。
public static void main(String[] args) throws Exception {
File dir = new File("C://Users//Test//Desktop//lists");
if (dir.isDirectory()) {
BufferedWriter writer = new BufferedWriter(new FileWriter("C://Users//Test//Desktop//logged.txt"));
for (File file : dir.listFiles()) {
String line1 = Files.readAllLines(Paths.get(file.getAbsolutePath())).get(0);
writer.write(line1);
writer.newLine();
}
writer.close();
}
}
答案 1 :(得分:0)
您在文本循环的每次迭代中重新打开文件logged.txt
。这将截断文件并再次开始写入。如果你真的想重新打开文件,你需要使用追加模式:FileWriter("filename.txt", true)
,但你可能想在循环之前打开BufferedWriter
并在之后关闭它。
答案 2 :(得分:0)
注意: 您必须在 for 循环
之外打开和关闭编写器对象试试这个
public static void main(String[] args) throws Exception {
File dir = new File("C://Users//Test//Desktop//lists");
if (dir.isDirectory()) {
BufferedWriter writer = new BufferedWriter(new FileWriter("C://Users//Test//Desktop//logged.txt"));
for (File file : dir.listFiles()) {
String line1 = Files.readAllLines(Paths.get(file.getAbsolutePath())).get(0);
writer.write(line1);
writer.newLine();
}
writer.close();
}
}