为了账号安全,请及时绑定邮箱和手机立即绑定

Java FileWriter:从代码中删除线程异常

Java FileWriter:从代码中删除线程异常

喵喵时光机 2023-08-04 19:21:32
使用FileWriter创建文本文件的程序。import java.io.FileWriter;import java.io.IOException;class Wx {    public static void main(String args[]) throws IOException {        String str = "Oh ho ho ho oh ho ho ho oh ho ho ho ohho ishq tera tadpaaweee ";        FileWriter f = new FileWriter("text");        for (int i = 0; i < str.length(); i++) {            f.write(str.charAt(i));            f.close();        }    }}这个异常即将到来:Exception in thread "main" java.io.IOException: Stream closed        at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:26)        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:99)        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:94)        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:177)        at Wx.main(Wx.java:10)这个异常一次又一次的出现,经过一番努力还是无法消除。
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

您不断关闭 for 循环内的流。将其移到大括号之外,如下所示:


import java.io.*;


class Wx {

    public static void main(String args[]) throws IOException {

        String str="Oh ho ho ho oh ho ho ho oh ho ho ho ohho ishq tera tadpaaweee";

        FileWriter f=new FileWriter("text");

        for(int i=0;i<str.length();i++) {

            f.write(str.charAt(i));

        }

        f.close();

    }

}


查看完整回答
反对 回复 2023-08-04
?
哔哔one

TA贡献1854条经验 获得超8个赞

FileWriter实现Closeable(JDK 1.5) ,因此您还可以使用显try-with-resources式依赖于closing()流的语句:


try (FileWriter f = new FileWriter("text")) {

    for (int i = 0; i < str.length(); i++) {

        f.write(str.charAt(i));

    }

}


查看完整回答
反对 回复 2023-08-04
  • 2 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信