如何保持打开文件输出流

时间:2014-03-03 19:27:34

标签: java file outputstream file-descriptor

我找不到解决问题的方法。但我有一个简单的案例 -

  1. 我有很多线程,彼此都是写文件的字符串。
  2. 任何写入相同文件的线程。
  3. 我需要在所有线程结束后关闭所有文件。
  4. 但问题是 - 我需要在线程执行期间保持打开所有文件,并在所有线程结束时关闭所有文件。但是当我在所有线程完成后使用FileDescriptors时 - 所有描述符都无效。我想,如果我是“刷新”输出流,而不是使用“关闭”方法 - 一切都好,但是,也许,我错了:

    FileOutputStream fileOutputStream = new FileOutputStream(url, true);
    fileDescriptor = fileOutputStream.getFD();
    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream, "UTF-8"));
    writer = new PrintWriter(bufferedWriter);
    ...
    writer.flush;
    

    但主要的问题是 - 它确实是 - 在线程结束后所有输出流都关闭了什么?并且,如果是,如何在线程之间保持打开的文件?

0 个答案:

没有答案