FileWriter在Arraylist中循环但不写入文本文件

时间:2016-01-29 14:38:42

标签: java arraylist filewriter

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

而不是使用相对路径使用绝对路径,如D:\\local.txt。它会起作用

答案 1 :(得分:0)

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

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

这样你就可以远离编写显式的foreach循环。

这里有更多关于自java 1.7+以来可用的Files对象 https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html