我正在通过Mario Zechner的“开始Android游戏”一书的路上我很高兴我把它拿起但是我现在遇到一个问题,其中一个“测试”他要求用户在早期编写代码这本书。并不是说我反对编码它们,我宁愿知道我在做什么,也不愿意做一个半翘起的工作,当我再往前走时,它就不会很好。
所以AssetManager似乎不想加载我的文件。
AssetManager am = getAssets();
InputStream inputStream = null;
try {
am.open("assets/texts/hello.txt");
String text = loadTextFile(inputStream);
tv.setText(text);
} catch (IOException e) {
tv.setText("Could not Load file");
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
tv.setText("Could not close file");
}
}
}
}
按照所有标准,我应该只能使用链接:“texts / hello.txt”,但每次我都会向我发射NPE。所以我被迫使用完整的链接。使用完整链接允许程序运行它只是无法按照它告诉我“无法加载文件”的说明加载我的文本文档
想想我现在将这个问题扼杀在萌芽状态,以便以后不会成为一个主要问题。
答案 0 :(得分:2)
将代码更改为:
AssetManager am = getAssets();
InputStream inputStream = null;
try {
inputStream= am.open("texts/hello.txt"); //<<<<
String text = loadTextFile(inputStream);
tv.setText(text);
} catch (IOException e) {
// your code here
因为您将null inputStream
传递给loadTextFile
方法
答案 1 :(得分:0)
// To load text file
InputStream input;
try {
input = assetManager.open("helloworld.txt");
int size = input.available();
byte[] buffer = new byte[size];
input.read(buffer);
input.close();
// byte buffer into a string
String text = new String(buffer);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}