写入java中的临时文件

use*_*404 8 java

我想以追加模式写入临时文件.我看到文件已创建,但Stringbuffer中的数据未写入.有人可以告诉我为什么吗?请在下面找到我写的代码,

public static void writeToFile(String pFilename, StringBuffer sb)
        throws IOException {

    String property = "java.io.tmpdir";


    String tempDir = System.getProperty(property);

    File dir = new File(tempDir);
    File filename = File.createTempFile(pFilename, ".tmp", dir);
    FileWriter fileWriter = new FileWriter(filename.getName(), true);
    System.out.println(filename.getName());
    BufferedWriter bw = new BufferedWriter(fileWriter);
    bw.write(sb.toString());
    bw.close();
}
Run Code Online (Sandbox Code Playgroud)

Joo*_*gen 6

FileWriter fileWriter = new FileWriter(filename.getName(), true);
Run Code Online (Sandbox Code Playgroud)

应该

FileWriter fileWriter = new FileWriter(filename, true);
Run Code Online (Sandbox Code Playgroud)


小智 5

这有效:

public static void writeToFile(String pFilename, StringBuffer sb) throws IOException {
    File tempDir = new File(System.getProperty("java.io.tmpdir"));
    File tempFile = File.createTempFile(pFilename, ".tmp", tempDir);
    FileWriter fileWriter = new FileWriter(tempFile, true);
    System.out.println(tempFile.getAbsolutePath());
    BufferedWriter bw = new BufferedWriter(fileWriter);
    bw.write(sb.toString());
    bw.close();
}
Run Code Online (Sandbox Code Playgroud)

需要注意的使用FileWriter(File, boolean)System.out.println(tempFile.getAbsolutePath())