我正在开发一个项目,其中我有一个hashmap,其中key作为Java IO库中的File对象和一个自定义模型对象,称为DrawingModel作为hashmap中的值。当我更改模型时,我需要保存文件。当我经历以下一系列事件时:
我的问题是,如果我更改文件(通过保存)我是否需要从Hashmap中删除该键值对并添加新的键值对?这样的值是相同的但密钥是否更新?
非常感谢您的时间和帮助!
此致 NC5
答案 0 :(得分:3)
File对象只不过是实际文件路径的包装器。它不会以任何方式锁定您的文件。
锁定是由一些仍然打开的流引起的。我敢打赌,在保存到文件后你没有关闭你的输出流。
答案 1 :(得分:1)
是。如果您从逻辑上思考,您的密钥将被更改。一旦它被更改,您将无法使用它找到您的数据。您应该在地图中插入(新的键,值)对。
答案 2 :(得分:1)
始终 close()
打开的file
,其他文件将不会更新。并且它也将更好地关闭 Connection and Channel streams
答案 3 :(得分:1)
确保您已关闭文件流(最上面一个)。即如果您已经打开了多个流,那么请确保关闭最顶层的流。否则,文件将被操作系统锁定。
答案 4 :(得分:1)
我建议您将文件Name作为Key而不是File Object,并通过其他逻辑处理文件编辑/更新内容。 作为键的文件对象没有多大意义。