在同一个应用程序中,在两个“writer”服务之间共享文件的最佳方法是什么?
编辑:
对不起我猜应该给出更多细节.
我有一个将条目保存到缓冲区的服务.当缓冲区变满时,它会将所有条目写入文件(依此类推).运行的另一个服务将在某个时刻到来并读取文件(基本上是复制/压缩它),然后清空它.
最佳答案 以下是您可以做的一般概念:
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
}
}
}
你将不得不做一些额外的工作,以使一切安全,但这只是一个基本的例子,让你了解它的外观.