java - BufferedWriter - 未知来源异常

标签 java exception bufferedwriter

我正在制作一些名为 cake util 的 java 库,其中之一是带有 write() 方法的 WriteFile 类。 现在,当我尝试调用该方法时,会发生未知来源异常

这是我的代码:

package Cake_Util.file;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import Cake_Util.console.Info;
import Cake_Util.console.Security;

public class WriteFile {

    private File f;

    public WriteFile(File path){
        if(path.exists()){
            this.f = path;
        }else{
            Info i = new Info("warn");
            i.print("Warning! the file doesnt exist");
            Security s = new Security();
            s.stop();
        }
    }

    public void write(String text){

        FileWriter fw = null;

        try {
            fw = new FileWriter(f);
        } catch (IOException e) {
            e.printStackTrace();
        }

        BufferedWriter bw = new BufferedWriter(fw);

        try {
            bw.write(text);
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            fw.close();
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public void newLine(){
        FileWriter fw = null;
        try {
            fw = new FileWriter(f);
        } catch (IOException e) {
            e.printStackTrace();
        }

        BufferedWriter bw = new BufferedWriter(fw);
        try {
            bw.newLine();
            fw.close();
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }  
}

附注抱歉,当我尝试将其放在这里时,缩进有点垃圾,是我的错:(

异常(exception)情况是:

[18:31:34 Info] Creating file...
java.io.IOException: Stream closed
at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)
at sun.nio.cs.StreamEncoder.write(Unknown Source)
at java.io.OutputStreamWriter.write(Unknown Source)
at java.io.BufferedWriter.flushBuffer(Unknown Source)
at java.io.BufferedWriter.close(Unknown Source)
at Cake_Util.file.WriteFile.write(WriteFile.java:42)
at mainPackage.lol.main.ThisIsATest.main(ThisIsATest.java:18)

最佳答案

我找到了答案: 我必须只关闭 bw,然后它会自动关闭 fw。这就是异常(exception)情况

关于java - BufferedWriter - 未知来源异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37194057/

相关文章:

android - Android 中的 StackOverflow 错误

kotlin - CoroutineScope 的问题(Dispatchers.Main)

java - BufferedWriter 在 OS X 上未刷新到套接字的输出

java - BufferedWriter:在文件关闭之前写入文件

java - onClick 监听器不起作用 - 无法到达断点

Java 在 Mac OSX 上将别名(符号链接(symbolic link))报告为大小 0。如何获得真实的文件大小?

python - 在 python 1.5.2 中获取异常类型

java - 无法将字符添加到字符数组列表

java - Jersey 不解码 Java 泛型类型

java - 从 Java 读取和编辑文件