这不是我不知道答案的问题之一,但我正在努力找到一种更好更有效的方法,所以我来了。
在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#equals
char
按char
进行比较。
要将csv
与.csv
进行比较,您可以尝试以下操作:
CSV_EXTENSION.substring(1).equals(fileName.getName()))