我从文件中读取了一行:KatalogObrazków 1 32
意味着我应该在以下位置查找数据:
C:\Users\NAME_OF_THE_USER/KatalogObrazków
所以我做到了,但是发生了一件可怕的事情。在
splitLine[0]
中,我有一个词"KatalogObrazków"
,但是计算机说"KatalogObrazków".equals(splitLine[0])
为假,在分割行后没有空白arround splitLine[0]
。请看下面的代码。 BufferedReader br = new BufferedReader(new FileReader(path));
String line;
String[] splitLine;
if ((line = br.readLine()) != null) {
splitLine = line.split(" ");
System.out.println(splitLine[0]);//1st line of output
System.out.println("KatalogObrazków".equals(splitLine[0]));//these are not EQUAL!!!!!??? WHY?
imageDirectoryPath = System.getProperty("user.home")+"/" + splitLine[0];
System.out.println(new File(imageDirectoryPath).exists());
delay = Integer.parseInt(splitLine[1]);
fontSize = Integer.parseInt(splitLine[2]);
}
br.close();
输出:
KatalogObrazków
false
false
C:\Users\R/KatalogObrazków
编辑:
System.out.println();
for (char c : splitLine[0].toCharArray())
System.out.print((int) c + " ");
System.out.println();
for (char c : "KatalogObrazków".toCharArray())
System.out.print((int) c + " ");
System.out.println();
知道了:
65279 75 97 116 97 108 111 103 79 98 114 97 122 107 243 119
75 97 116 97 108 111 103 79 98 114 97 122 107 243 119
最佳答案
您可能在文件开头遇到了UTF-BOM。
http://en.wikipedia.org/wiki/Byte_order_mark
它是不可见的,因为大多数编辑器都将其隐藏。太邪恶了吧?