java - 将字符串写入文件

标签 java writetofile

我有上面的代码。我想要做的是在txt文件中写入一个字符串。

     import java.io.*;
    import java.util.*;

    public void writeAsfalizomenos(asfalizomenos myObj) throws IOException {

    Scanner scanner = new Scanner(System.in);
    System.out.print("Surname: ");
    String username = scanner.nextLine();
    System.out.println(username);


    FileWriter outFile = new FileWriter("asdf.txt", true);
    PrintWriter out1 = new PrintWriter(outFile);

    out1.append(username);
    out1.println();
    out1.append("adfdas");



    //
    // Read string input for username
    //



}

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


    asfalizomenos a = new asfalizomenos();
    a.writeAsfalizomenos(a);
}

上面的代码创建了一个 txt 文件,但没有将字符串写入其中。关于我的错误有什么想法吗?

最佳答案

您没有关闭或刷新 PrinterWriterFileWriter。所以基本上它被缓冲了,所以没有任何东西被写入文件。

您应该在finally block 中关闭两者:

FileWriter outFile = new FileWriter("asdf.txt", true);
try {
    PrintWriter out1 = new PrintWriter(outFile);
    try {
        out1.append(username);
        out1.println();
        out1.append("adfdas");
    } finally {
       out1.close();
    }
} finally {
   outFile.close();
}

关闭时会自动冲洗。

(我不记得了 - 关闭 PrintWriter 可能会关闭 FileWriter。无论如何,我个人喜欢明确说明这一点。)

关于java - 将字符串写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018541/

相关文章:

NSdata writeToURL 不起作用

java - 为同一实体上的 oneToMany 映射设计 JPA 实体对象

java - 我的 Append 方法在 Java 中不起作用

C# 异常 - 无法访问文件,因为它正被另一个进程使用

c# - 将 3d int 数组写入文件(并更新它)的最佳方法?

ios - UIImagePNGRepresentation writeToFile 可以捕获错误吗?

java - 如何分别访问对象变量的所有不同实例?

java - Java 同步方法通常优先考虑最近调用的线程吗?

java - android api 参数编号更改。如何支持?

ios - swift:写入文件