亲爱的所有人,我正在为Android 2.2创建一个简单的文件解码器,该文件解码器需要从标头中找到编码文件的文件名。然后,应将此文件名用作解码文件的文件名(如您所料)。

文件名由子字符串name=标识,因此实际名称以5位开头。该行由BufferedReader读取,并临时存储在currLine中。

由于某些原因,我无法理解或在网上找不到,字符串似乎并不总是字符串...

当我给文件名

String fileOutName = "testfile.txt";
System.out.println("fileOutName contains: "+ fileOutName);
System.out.println("fileOutName type: "+ fileOutName.getClass());


它按应有的方式工作。但是,从文件读取它不起作用:

String fileOutName = currLine.substring((currLine.indexOf("name=")+5));

不提供输出文件,也不提供IO异常。不过,该字符串已正确解析:在这两种情况下,我都从System.out调试行找到:

fileOutName contains: testfile.txt
fileOutName type: class java.lang.String


任何人都不清楚为什么这行不通? :S

谢谢

最佳答案

gh ...当然,substring例程也得到了end of line字符,该字符显然不能放在文件名中,但显然不是printline返回的:)

所以它是由固定的:

String fileOutName = currLine.substring((currLine.indexOf("name=")+5), currLine.length() -1);

感谢您查看问题并发表评论,仅提出问题就使答案打了我……有人可以将我的回答标记为正确吗?看来接下来的两天我不能这样做。

09-11 19:30