保存vs在java中检索文件扩展名时的次要问题

时间:2016-12-22 20:43:21

标签: java regex

这不是我不知道答案的那些问题之一,但我正试图找到一种更有效的方法,所以我走了。

在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一切都很好。现在打开文件的时候我需要打开基于它的扩展名,比如tep的notepad,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

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

1 个答案:

答案 0 :(得分:1)

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

在Java中==代表参考比较,String#equalscharchar进行比较。

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

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