[英]BufferedWriter.newLine() not writing in new line
好吧,要直截了當,我已經編寫了一個簡單的應用程序,在該應用程序中,它獲取經過的文件第一行的字符串,然后將其記錄到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();
}
}
}
你new
的writer
每次。 在for
之前添加new
行。
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();
}
}
您將在文本循環的每次迭代中重新打開文件logged.txt
。 這將截斷文件並從頭開始重新寫入。 如果確實要重新打開文件,則需要使用附加模式: FileWriter("filename.txt", true)
,但是您可能想在循環之前打開BufferedWriter
然后再將其關閉。
注意 :您必須在for循環之外打開和關閉writer對象。
嘗試這個
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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.