java在创建文件时将无效字符映射为有效字符,在读取文件名时将其映射回原始名称
我需要在创建文件时将无效字符映射到其他一些字符,如“/”到“”(正斜杠到下划线),因为文件名不允许放斜杠、问号、双引号等
如果我有
String name = "Message Test - 22/10/2016";
现在我想用上面的字符串来写一个文件,但由于斜杠的缘故,它给出了一个错误
因此,我想在编写文件时将斜杠像所有无效字符一样映射到任何其他字符。写完后,我需要阅读所有文件的名称&;显示在页面上
不知怎的,我映射了字符,所以文件名是
Message_Test_-_22-10-2016
当我在web上显示它时,我需要返回文件名作为原始名称,如
Message Test - 22/10/2016
我正在使用java。有人能帮我解决这个问题吗?我如何开始编写这个方法,或者有没有api,或者有没有其他方法
我不想使用数据库将别名文件名与原始文件名关联起来
# 1 楼答案
它不够健壮,因为它假定您从未在文件名中使用
_
字符如果使用它,如何知道在应用程序中存储为
my_file
的文件是否应显示为my_file
或my/file
我认为更可靠的方法是使用一个文件(例如JSON或XML)存储每个文件的两个属性:
它需要一个额外的文件,但它使事情更加清楚
# 2 楼答案
您可以使用映射来存储映射:
例如
然后替换1次遍历中的字符: