我的程序从assets文件夹打开一个.txt文件并从中读取。这是代码:
AssetManager myAssetManager = myContext.getAssets();
try{
InputStream is = myAssetManager.open("databaseeleven.txt");
byte[] bytes = new byte[is.available()];
is.read(bytes);
commands = new String(bytes);
} catch(IOException e){
Toast.makeText(myContext, e.getMessage(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}//try-catch
我注意到当我对名为databaseeleven.txt的文件进行更改并保存文件时,当我再次运行程序时,我的更改不会反映在模拟器上。该项目保存到拇指驱动器。我检查了它以确保只有一个具有该名称的文件,并且它是最新的。我知道由于代码的更改,应用程序被重新下载。我正在使用egit,Eclipse版本3.6.2和ADT版本10.0.1。有人知道为什么我的程序没有处理这个保存的文件吗?
更新:刷新然后再次清理项目无济于事。
答案 0 :(得分:8)
如果我已正确理解您的问题,您正尝试更改/assets
文件夹中的文件。 签署后无法更改.apk
内容。
如果文件很小,请将其复制到app's private data directory
。
如果文件较大,请将其复制到/sdcard
。
答案 1 :(得分:3)
我在资产文件夹中使用.sqlite文件发生了这件事,我通过
解决了这个问题答案 2 :(得分:2)
databaseeleven.txt的文件大小是什么?
资产文件的每个文件限制为1MB,如果文件大小超过此限制,则在apk中将无法使用。
如果是这种情况,我知道有两种选择:
注意:似乎在Android 2.3中删除了1MB限制,因此这仅适用于2.2及更低版本。
答案 3 :(得分:0)
编辑文件后清理项目....希望这有帮助
答案 4 :(得分:0)
在eclipse和clean& amp;再建一次。希望您能够找到模拟器中反映的更改
答案 5 :(得分:0)
如果它是你的格式的txt文件,你应该做这样的事情
InputStream ins = getResources().openRawResource(R.raw.options);
其中“options”是〜/ res / raw文件夹中的options.txt文件。
对此文件的任何更改仍需要发布/部署回设备/模拟器,因此它具有最新的apk。
希望这会有所帮助......