[英]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.