java - 无法写入文件

标签 java file-io

我需要一些帮助,请将输出写入文件,但我无法让它工作。如果我使用 System.out.println 它就可以工作。如果我在实际方法中创建文件流和缓冲写入器,它会创建文件但不会向其中写入任何内容。我假设这是因为我的方法是递归的,并且每次该方法再次调用它自己时都会创建一个新文件。因此,我创建了另一个打印方法,并使用字符串值 key[i] 作为字符串参数,但它什么也不做。

感谢任何帮助,谢谢。

 public void print(String s)throws IOException
{
    fstream = new FileWriter("out.txt", true);
    out = new BufferedWriter(fstream);

    try{
        out.write("From print: " + s + " ");
        out.close();
    }catch (Exception e){//Catch exception if any
        System.err.println("Error: " + e.getMessage());
    }
}

public void generate() throws IOException
{ 
    while (k<randomWordNum())
    {
        if (randomNum() <= sumOfFreq[0])
        {
            //System.out.println(getKey[0] + " "); 
            print(getKey[i]);
            i++;
            k++;
            generate();
        }
        if (randomNum() >= sumOfFreq[i] && randomNum() <= sumOfFreq[i+1])
        {
            //System.out.println("From generate: " + getKey[i+1] + " "); 
            print(getKey[i+1]);
            i++;
            k++;
            generate();
        }
        else
        {
            i++;
            generate();
        }
    }//while
}//generate

最佳答案

您需要关闭文件以确保内容被写入

关于java - 无法写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13790390/

相关文章:

java - TimerTask 在 Tomcat Servlet 中停止运行的原因可能是什么

java - IntelliJ/Android Studio 上的 Ctrl+N 键盘快捷键

c - 获取 FILE 行 *

Java mysql 如果表存在

java - 如何为每条通过netty消息解码器的消息分配一个序列号?

java - 从 Spring Controller 获取 Web App 根目录

c# - 更改文件名以在 MVC3 中下载

java - 从文本文件中读取并忽略空格

java - Stripes:从另一个 ActionBean 调用一个 ActionBean 的方法

java - 文件到数组到 JTable(索引越界)