我正在使用以下代码写入文件:
File file = new File(getCacheDir(), "cachefile");
FileOutputStream fos = new FileOutputStream(file);
StringBuilder cachetext = new StringBuilder();
Iterator bri = brands.iterator();
Iterator bli = brand_id.iterator();
while(bli.hasNext()) {
cachetext.append(bli.next() + "|" + bri.next() + System.getProperty("line.separator"));
}
fos.write(cachetext.toString().getBytes());
fos.close();
Run Code Online (Sandbox Code Playgroud)
这很好 - 没有错误,文件最终包含我希望它包含的内容.但是,当我通过openFileInput()读取它时,我得到一个异常,告诉我不允许路径分隔符
FileInputStream fis = openFileInput(getCacheDir() + "/cachefile");
Run Code Online (Sandbox Code Playgroud)
很公平,它包含一个斜杠,但我怎么能指定我想要打开的文件的路径?当然,必须有办法做到这一点,但我无法通过谷歌找到答案("阅读","缓存"和"文件"不是最常用的术语......)所以我想我会尝试人性化.提前致谢!
这感觉非常像另一个没有看到树林的情况.
我为我的应用程序编写了一个小的(非扩展)类,目前只包含一个方法来抓取提供的URL并返回一个字符串.我希望在查询字符串的末尾包含设备ID,因此添加了以下行:
import android.telephony.TelephonyManager;
import android.content.Context;
...
TelephonyManager m_tmgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
Run Code Online (Sandbox Code Playgroud)
然而,根据Eclipse,TELEPHONY_SERVICE常量"无法解析为变量".如果我将这些行复制并粘贴到包中的另一个类中(所有其他类都是活动,目前可能与它有关?),一切正常.
我错过了哪些非常明显的事情?