亲爱的,我正在为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
由于
答案 0 :(得分:2)
呃...当然substring
例程也得到end of line
字符,显然不能在文件名中但显然不会被printline返回:)
所以修正了:
String fileOutName = currLine.substring((currLine.indexOf("name=")+5), currLine.length() -1);
感谢您查看此内容并发表评论,只是通过提出问题答案打击了我......任何人都可以将我的答案标记为正确吗?在接下来的两天里我似乎无法做到这一点。