使用java中的FileOutputStream写入文件时,程序执行永远不会停止

时间:2018-06-03 21:04:53

标签: java file java-8

如果配置文件不存在,这是用于创建配置文件的代码。 执行时,创建文件并在文件中成功写入内容。但程序执行永远不会停止

FileOutputStream obj = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(obj);    
Writer input = new BufferedWriter(osw);
input.write("autoupdate = false\n");
input.write("autoscan = false");
input.close();

2 个答案:

答案 0 :(得分:0)

可以用Windows吗?您没有指定您的操作系统。 尝试使用FileWriter。

try (FileWriter writer = new FileWriter(file)) {
    writer.write("autoupdate = false\n");
    writer.write("autoscan = false");
}

答案 1 :(得分:-1)

"程序执行从不停止" 是什么意思?你显然没有在这里展示一切。什么假设在您的应用程序中停止程序执行?或者你的意思完全是什么?

除了几个小怪癖之外,我不知道你的代码是如何无限地维持程序执行的,但是,嘿,我已经老了,看不太了。

如果您使用的是Java 7或更新版本,使用Try-with-Resources Statement会很有用,因为它会自动为您关闭所有内容。这是一个例子:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream("ConfigFile.conf"), "UTF-8"))) {
    writer.write("autoupdate = false" + System.lineSeparator());
    writer.write("autoscan = false" + System.lineSeparator());
}
catch (IOException ex) {
    ex.printStackTrace();
}