【发布时间】:2012-10-16 09:06:44
【问题描述】:
我有要求我不断收到需要写入文件的消息。每次收到新消息时,都需要将其写入单独的文件中。我想要的是生成一个唯一标识符以用作文件名。我也想保留消息的顺序。我的意思是,作为文件名生成的标识符应该始终是增量的。
我使用 UUID.randomUUID() 来生成文件名,但这种方法的问题是 UUID 只保证标识符的随机性,而不是增量。结果我失去了文件的顺序(我希望首先生成的文件应该出现在列表的第一位)。
已知方法
- 可以使用 System.currentTimeMillis(),但我可以同时接收多条消息。
2.另一种方法是实现静态长值并在要创建文件时将其递增并将长值用作文件名。但我不确定这种方法。此外,这似乎不是解决我的问题的正确方法。我认为可能有比这个更好的解决方案。
如果有人能建议我更好地解决这个问题,将不胜感激。
【问题讨论】:
-
我每次只添加一个到基数大于 10 的 BigInteger
-
你不能在 uuid 前面加上时间戳吗?因此,您既可以保留顺序(时间戳),又可以在 id 中具有随机性
-
@AJcodez :你能用一个例子解释一下上述方法吗?它可以帮助我更好地理解。
-
@ph。 : 你说的好像还不错。但我唯一担心的是,如果你在前面加上时间戳,id 会太长。
-
@Ankur 我不确定文件名是否为 50 字符真的是个问题
标签: java