繁体   English   中英

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中没有任何数据,它在运行前为空,在程序运行期间及之后为空。

有人可以发现我遇到的问题吗?

提前致谢。

代替使用相对路径,使用绝对路径,例如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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM