[英]FileWriter cycling through Arraylist but not writing to text file
我正在用Java創建登錄表單,並添加了一個“記住我”方法,用於將日志數據存儲在本地文本文件中,以備將來使用。
前提是選中此復選框后,電子郵件和密碼就會寫到文本文件中。
這是下面的代碼:
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
public void rememberMe() throws IOException {
private final ArrayList<String> storage = new ArrayList<String>();
protected String storPass;
protected String storEmail;
storage.add(storEmail);
storage.add(storPass);
FileWriter writer = new FileWriter("local.txt");
for(String i : storage) {
writer.write(i);
System.out.println("We have written " + i);
}
writer.close();
}
輸出為:
We have written EMAILADDRESS
We have written PASSWORD
數據已刪除,但是在foreach外觀中的打印顯示出它正在正確循環遍歷Arraylist。
local.txt
中沒有任何數據,它在運行前為空,在程序運行期間及之后為空。
有人可以發現我遇到的問題嗎?
提前致謝。
代替使用相對路徑,使用絕對路徑,例如D:\\\\local.txt
。 會工作的
嘗試使用:
路徑在系統上定位/創建文件
然后,使用Files對象使用列表靜態寫入文件。
Path file = Paths.get("local.txt");
Files.write(file, storage, Charset.forName("UTF-8"));
這樣,您就可以避免編寫顯式的foreach循環。
自Java 1.7+起https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html以來可用的文件對象更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.