我有一个小型.Net 库,我想将其移植到java。该库的部分要求是它应该将状态序列化到磁盘上的文件中,并且该文件应保持“打开”状态,以便该库的其他实例无法访问该文件,但大多数实例都会创建自己的实例。在 C# 中,我使用使用 FileShare.None 打开的 FileStream 来防止其他人读取/写入文件。当持有 FileStream 时,我可以读取和写入文件,调用 Flush() 写入磁盘并使用 SetLength(..) 我可以在写入内容后缩短已经存在的文件。
在 java 中,我不确定哪个类提供最相似的属性。 RandomAccessFile 是我最好的选择,但由于我不太精通 java,我可能会忽略一些更适合的类或 RandomAccessFile 的一些警告。
最佳答案
查看 FileWriter,阅读 API 文档,看看它是否适合您的需求。
FileWriter is meant for writing streams of characters. For writing streams of raw bytes, consider using a FileOutputStream.
再次阅读您的帖子,我实际上认为这可能会回答您的问题:
How to prevent file from being overridden when reading and processing it with Java?
关于c# - java相当于.net FileStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8891359/