在同一应用程序中的两个“编写器”服务之间共享文件的最佳方式是什么?
编辑: 抱歉,我想我应该提供更多详细信息。
我有一个将条目保存到缓冲区的服务。当缓冲区变满时,它会将所有条目写入文件(依此类推)。另一个正在运行的服务将在某个时候读取文件(本质上是复制/压缩它)然后清空它。
最佳答案
以下是您可以做什么的大致思路:
public class FileManager
{
private final FileWriter writer = new FileWriter("SomeFile.txt");
private final object sync = new object();
public void writeBuffer(string buffer)
{
synchronized(sync)
{
writer.write(buffer.getBytes());
}
}
public void copyAndCompress()
{
synchronized(sync)
{
// copy and/or compress
}
}
}
您将需要做一些额外的工作才能使其全部安全运行,但这只是一个基本示例,可让您了解它的外观。
关于java - 跨服务锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205636/