为什么我无法将文本写入文件

时间:2014-05-13 19:39:20

标签: java

我写了一个简单的代码来将文本写入文件,但我无法弄清楚为什么文本没有写入文件。我编写了一个带有方法的类,它将文本文件作为输入,并创建文本文件(如果它不存在)

这是代码:

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class OutputFile {

    public static BufferedWriter fbw = null;

    public BufferedWriter createFile(String text)
    {
        try{
            File file =new File(text);
            if(!file.exists()){
                file.createNewFile();
            }
            FileWriter writer = new FileWriter(text,true);
            fbw =new BufferedWriter(writer);
        }
        catch (IOException e)
        {
            System.out.println(e.getMessage());
        }
        return fbw;
    }

    public static void main(String args[]) throws IOException
    {
        String resultFilePath = "C:/Users/Desktop/stringcompare/output.txt";
        OutputFile file = new OutputFile();
        fbw = file.createFile(resultFilePath);
        fbw.write("hello");
        fbw.newLine();
        fbw.close();
    }
}

2 个答案:

答案 0 :(得分:1)

试试这个:

try(BufferedWriter bw = new BufferedWriter(new FileWriter("FILE_PATH_HERE"))){

    br.write("STUFF_TO_WRITE_HERE");

} catch(IOException e){

}

使用此try-with-resources语句,所有结束文件工作都会自动完成。

这仅适用于Java 7或更高版本。

答案 1 :(得分:0)

您必须刷新输出。这可以通过致电writer.flush()直接完成。