java - 每个 BufferedWriter 实例只有一个 FileWriter 实例?

标签 java multithreading file io bufferedwriter

我正在为 Java 项目创建文件写入/读取实用程序。我创建了一个类,它封装了特定文件的常规读、写等类型的函数。将使用此文件实用程序的类是多线程的。在该类内部,我有一个 FileWriter (和 FileReader)对象的实例变量。它在此类的构造时被初始化。在每个写入方法内部,我都会创建一个 BufferedWriter 对象的新实例,以将 FileWriter 实例传递给它。我有什么理由不应该这样做吗?每个 BufferedWriter 实例是否都需要一个唯一的 FileWriter 实例?或者我可以在许多不同的 BufferedWriter 实例中使用相同的 FileWrite 实例吗?

最佳答案

我无法想象为什么你认为你需要这个,但你不需要。您应该做的是在FileWriter周围创建一个单个BufferedWriter,并让您的方法写入它,主题当然是同步。

多个 BufferedWriters 的众多问题之一是,如果您关闭其中任何一个,底层的 FileWriter 也会关闭。

关于java - 每个 BufferedWriter 实例只有一个 FileWriter 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35690764/

相关文章:

Java程序递归反转数组

java - 执行器服务缺少一些任务

Python线程不会同时运行

android - 在 Android 的主线程中使用 OpenGL

c# - 多线程和委托(delegate)执行

c++ - 文件 IO : c (FILE *) and fgets() vs. c++ istream 和 read() ;功效?效率?

java - 套接字从 TimerTask.run() 内关闭

python - 读取文件的多种方式?

c - 在 C 语言中对文件中的数组进行排序

java - 如何从 Java 中的 HTTP 请求中获取 JSON 对象