在 java 中保存与检索文件扩展名时的小问题



这不是我不知道答案的问题之一,但我正在努力找到一种更好更有效的方法,所以我来了。

在java中保存文件名时,我像这样保存它

private static final String REPORT_FILE_PREFIX = "ask_ques"; //$NON-NLS-1$
private static final String TXT_EXTENSION = ".txt"; //$NON-NLS-1$
StringBuilder fileName= new StringBuilder();
fileName.append(tempFilePath.toString()).append(REPORT_FILE_PREFIX)
.append(uniqueId.toString()).append(TXT_EXTENSION);

这将保存文件,例如ask_ques_1234.txt一切都很好。现在,当打开文件时,我需要根据其扩展名打开,例如txt,excel等的记事本。就像我在下面所做的那样

if (FilenameUtils.getExtension(fileName.getName()) == CSV_EXTENSION) {
// Open the .csv file based on the local file type
// association
} else if (FilenameUtils.getExtension(fileName.getName()) == TXT_EXTENSION) {
// open the .txt file based on file type assocaition
}

这里的问题是FilenameUtils.getExtension(reportFile.getName())返回 txt 的值,但TXT_EXTENSION.txt作为其值。

不想为.创建静态变量。想看看是否有简单的正则表达式或类似的东西,你们知道在比较时忽略.

而不是fileName.getName()) == CSV_EXTENSION使用fileName.getName()).equals(CSV_EXTENSION)

在Java中,==代表引用比较,String#equalscharchar进行比较。

要将csv.csv进行比较,您可以尝试以下操作:

CSV_EXTENSION.substring(1).equals(fileName.getName()))

最新更新