这不是我不知道答案的那些问题之一,但我正试图找到一种更有效的方法,所以我走了。
在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正则表达式或类似的东西你们知道在比较时忽略.
。
答案 0 :(得分:1)
而不是fileName.getName()) == CSV_EXTENSION
使用fileName.getName()).equals(CSV_EXTENSION)
。
在Java中==
代表参考比较,String#equals
将char
与char
进行比较。
要将csv
与.csv
进行比较,您可以尝试以下方法:
CSV_EXTENSION.substring(1).equals(fileName.getName()))