java - 在类中保存 BufferedWriter 实例。任何问题?

标签 java

我正在创建一个与此类似的服务:

interface MyLogger
{
    void logStuff( int id, String message );
}

该实现基本上打开一个文件并缓存 BufferedWriter 的实例 在类里。该方法已同步。

可以通过 BufferedWriter 以长久的方式打开文件包装吗?

logStuff 的简单实现。

public void logStuff(...)
{
    try
    {
        this.writer.write( message );
        this.writer.flush();
    }
    catch( IOException ignored ) {}
}

最佳答案

是的,没关系,您只需要注意,当您的服务打开日志文件时,其他进程/线程可能无法打开该日志文件进行写入。我认为其他进程仍然可以以只读方式打开它,尽管我不知道这是否与系统相关。

如果其他线程/进程确实需要能够写入与服务写入混合的文件,您可以执行诸如在 MyLogger 实例中缓存日志行之类的操作;然后,一旦你有,比如说,100,以追加模式打开文件,将它们写出来,然后关闭文件。不过,这并不是一件特别优雅的事情。

关于java - 在类中保存 BufferedWriter 实例。任何问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/514398/

相关文章:

Java套接字服务器仅显示连接关闭后收到的消息

java - 在 Jhipster 微服务模型上开发面向客户端的 UI 的最佳方法/实践?

java - 数据类型识别

java - 在客户端使用 Httpurlconnection 负载平衡 Web 服务器

java - GWT 客户端和桌面运行服务器之间的客户端/服务器通信

当按下 JButton 时,Java 运行其他类的 main 方法

java - sdk构建路径问题

java - equals 和 hashcode - 证明合约合理

java - 使用 IntelliJ IDEA 配置 Spring MVC

Java:我们如何在 "function pointer is prohibited"时创建回调函数?