我想访问位于资产下的文本文件,该文件将对该文件执行一些处理,并在我的活动中调用。我使用的代码是:Android访问资产文件
AssetManager assetManager = getAssets();
InputStream instream = assetManager.open("file.txt");
如果一个Activity类使用,但如何让它在一个普通的Java类工作,这工作得很好?
被修改
JamesBlack - 因为如果我通过了InputStream,则下面的代码将不工作
for (int i = 0; i < gestureNumbers.size(); i++) {
BufferedReader bf = new BufferedReader(new InputStreamReader(instream));
// possible error here
while ((line = bf.readLine()) != null) { ... }
}
即使gestureNumbers.size()> 1,则while循环只执行一次然后一旦读取文件就等于空。
当下面的代码工作,但我不能在纯java类中打开文件,它在活动类中工作,我不想在一个类中有太多的代码。
for (int i = 0; i < gestureNumbers.size(); i++) {
InputStream instream = assetManager.open("BSL_Word_POS.txt");
BufferedReader bf = new BufferedReader(new InputStreamReader(instream));
// possible error here
while ((line = bf.readLine()) != null) { ... }
}
为什么不将InputStream传递给纯java类。为什么你不想在活动中这样做? –
如果你想在普通的java类中做,然后将活动类的上下文传递给你的Java类,然后context.getAssets(); 会工作 – ingsaurabh