gpt4 book ai didi

java - 当我运行类(class)时,它会生成一个 0kb 的空白文件。有人可以指出我错在哪里吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:45 27 4
gpt4 key购买 nike

我尝试在文件名“aq.txt”中写入一些内容。目录没有问题。

FileOutputStream fos= null;
try{
String xyz= "You should stop using xyz";
fos= new FileOutputStream("aq.txt");
Writer wrt= new BufferedWriter(new OutputStreamWriter(fos));
wrt.write(xyz);
}
catch(IOException e){
System.out.println("Couldn't write to the file: "+e.toString());
}
finally{
if(fos!=null){
try{
fos.flush();
fos.close();
}
catch(Exception e1){
e1.printStackTrace();
}
}
}

最佳答案

您将关闭,但不会关闭作者。所有数据都缓存在写入器中。改用这个:

Writer writer = null;
try{
String xyz= "You should stop using xyz";
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("aq.txt")));
writer.write(xyz);
writer.flush();
}
catch(IOException e) {
System.out.println("Couldn't write to the file: " + e.toString());
}
finally{
if(writer != null){
try {
writer.close();
}
catch(IOException e1) {
e1.printStackTrace();
}
}
}

(关闭编写器将关闭底层 OutputStreamWriter,这也会关闭 FileOutputStream。)

请注意,我已将 flush 调用移动到 try block 中 - 您不想在 中调用 flush finally block ,就好像失败了一样(例如,您的磁盘空间不足),您最终不会关闭流。我通常不会显式刷新,将其留给 close 来执行此操作,但有人警告我,在某些情况下,某些实现会在刷新时静默捕获异常:(

关于java - 当我运行类(class)时,它会生成一个 0kb 的空白文件。有人可以指出我错在哪里吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9748609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com