我有上面的代码。我想要做的是在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 文件,但没有将字符串写入其中。关于我的错误有什么想法吗?
最佳答案
您没有关闭或刷新 PrinterWriter
或 FileWriter
。所以基本上它被缓冲了,所以没有任何东西被写入文件。
您应该在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/