代码之家  ›  专栏  ›  技术社区  ›  James Gould

FileWriter循环通过Arraylist,但不写入文本文件

  •  0
  • James Gould  · 技术社区  · 9 年前

    我正在用Java创建一个登录表单,并添加了一个remember me方法,将登录数据存储在本地文本文件中,以备将来使用。

    前提是,选中复选框后,电子邮件和密码将被写入文本文件。

    下面是代码:

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

    有人能发现我的问题吗?

    提前谢谢。

    2 回复  |  直到 9 年前
        1
  •  1
  •   Rahman    9 年前

    使用绝对路径代替使用相对路径 D:\\local.txt 。它会起作用的

        2
  •  0
  •   ephemeralCoder    9 年前

    尝试使用:
    路径在系统上查找/创建文件
    然后使用Files对象使用列表静态写入文件。

    Path file = Paths.get("local.txt");
    Files.write(file, storage, Charset.forName("UTF-8"));
    

    这样,您就可以避免编写明确的foreach循环。

    下面是关于Files对象的更多信息,该对象自java 1.7以来可用+ https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html

    推荐文章