【问题标题】:Write the contents of an ArrayList to a text file将 ArrayList 的内容写入文本文件
【发布时间】:2014-02-28 12:26:04
【问题描述】:

我有一个存储在 ArrayList 中的一些命令的列表,我一直在尝试将此列表打印在一个文本文件中。下面是代码-

try {
    FileWriter writer = new FileWriter("Commands.txt");
        for(String str: commandArray){
        writer.write(commandArray[i]);
    }
 }
catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} 

我没有收到任何错误,但文件也没有创建。是不是我做错了什么。任何帮助表示赞赏。非常感谢。

编辑问题

@Sajal Dutta,我听取了您的建议并提出了以下建议;

try {

    for(String str: movementArray){

        File file = new File("D://filename.txt");

        // if file doesnt exists, then create it
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);
        bw.write(str);
        bw.close();
    }
}

catch (IOException e) {
    e.printStackTrace();
}

在创建文件的那一刻,但只有来自 arraylist 的最后一个值被打印到文件中。数组列表中存储了六个值,如何将所有六个值都打印出来?

【问题讨论】:

  • 我没有看到任何拼写错误。你在干嘛?
  • 您的 for each 循环非常有趣。无法理解它是如何工作的。
  • 我从@Sajal 那里得到了这个想法。我自己并不完全理解它,但它似乎只是部分起作用。只有我的 arraylist 中的最后一个元素被打印出来,与整个列表相反。如果您想看一下,下面的 cmets 上有一个指向他的答案的链接。

标签: java arraylist filewriter


【解决方案1】:

你不见了-

finally {
    writer.close();
}

【讨论】:

  • 嗯..你必须在你的 try..catch..finally 块之外声明你的作家。声明为 FileWriter writer = null;然后在最后, if(writer != null) {try{writer.close();}catch(Exception e){//do 不管什么}}
  • @Hustl3r28 写入文件的更好方法:mkyong.com/java/…
  • 谢谢。但是它是否可以与数组列表一起使用,所以插入(“这是要写入文件的内容”),我的数组列表的名称是括号?
  • @Hustl3r28 是的,你会这样做 for(String str: commandArray){bw.write(str);然后你在 for 循环外面关闭 bw。
  • 我对原来的问题做了一些修改,如果你能看一下,那就太感谢了。
【解决方案2】:
try {
                if(!file.exists())
                    file.createNewFile();
                FileWriter writer = new FileWriter(file);
                BufferedWriter bw = new BufferedWriter(writer);
                for(String str : data){
                    bw.append(str);
                    bw.append("\n");
                }
                bw.close();
                writer.close();
            }

【讨论】:

    【解决方案3】:

    每次在 for 循环中,您都在创建一个不好的新 FileWriter 和 BufferedWriter 对象

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多