FileWriter 循环遍历 Arraylist 但不写入文本文件
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
里面没有任何数据,在运行之前是空的,在运行期间和之后都是空的。
有人能发现我遇到的问题吗?
提前致谢。
尝试使用:
路径locates/creates系统上的文件
然后使用 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
不要使用相对路径,而是使用绝对路径,如 D:\local.txt
。它会起作用
我正在 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
里面没有任何数据,在运行之前是空的,在运行期间和之后都是空的。
有人能发现我遇到的问题吗?
提前致谢。
尝试使用:
路径locates/creates系统上的文件
然后使用 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
不要使用相对路径,而是使用绝对路径,如 D:\local.txt
。它会起作用