android - Leer el archivo del directorio de activos lanza la excepción FileNotFoundException
bufferedreader android-assets (2)
Compruebe si el archivo se empaquetó correctamente en la carpeta de activos dentro del archivo .apk. (Se puede examinar como un archivo zip. Cámbiele el nombre si es necesario para mirar dentro).
Estoy tratando de leer un archivo de texto de un montón de palabras que quiero usar para un juego de palabras que estoy escribiendo. Esta lista se almacena en el directorio de activos y es un archivo txt. Pero, cuando intento abrirlo, lanza una excepción.
List<String>wordList = new ArrayList<String>();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(getAssets().open("wordlist.txt"))); //throwing a FileNotFoundException?
String word;
while((word=br.readLine()) != null)
wordList.add(word); //break txt file into different words, add to wordList
}
catch(IOException e) {
e.printStackTrace();
}
finally {
try {
br.close(); //stop reading
}
catch(IOException ex) {
ex.printStackTrace();
}
}
String[]words = new String[wordList.size()];
wordList.toArray(words); //make array of wordList
for(int i=0;i<words.length; i++)
Log.i("Brian", words[i]); //print out words in array
}
Aquí está el registro de errores, en caso de que sea alguna ayuda:
02-22 20:49:47.646: WARN/System.err(2351): java.io.FileNotFoundException: wordlist.txt
02-22 20:49:47.646: WARN/System.err(2351): at android.content.res.AssetManager.openAsset(Native Method)
02-22 20:49:47.746: WARN/System.err(2351): at android.content.res.AssetManager.open(AssetManager.java:299)
02-22 20:49:47.746: WARN/System.err(2351): at android.content.res.AssetManager.open(AssetManager.java:273)
02-22 20:49:47.756: WARN/System.err(2351): at com.bic.anagram.GameActivity.onCreate(GameActivity.java:40)
02-22 20:49:47.756: WARN/System.err(2351): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-22 20:49:47.756: WARN/System.err(2351): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2521)
02-22 20:49:47.756: WARN/System.err(2351): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2574)
02-22 20:49:47.766: WARN/System.err(2351): at android.app.ActivityThread.access$2400(ActivityThread.java:121)
02-22 20:49:47.766: WARN/System.err(2351): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1925)
02-22 20:49:47.766: WARN/System.err(2351): at android.os.Handler.dispatchMessage(Handler.java:99)
02-22 20:49:47.776: WARN/System.err(2351): at android.os.Looper.loop(Looper.java:136)
02-22 20:49:47.776: WARN/System.err(2351): at android.app.ActivityThread.main(ActivityThread.java:4425)
02-22 20:49:47.776: WARN/System.err(2351): at java.lang.reflect.Method.invokeNative(Native Method)
02-22 20:49:47.776: WARN/System.err(2351): at java.lang.reflect.Method.invoke(Method.java:521)
02-22 20:49:47.776: WARN/System.err(2351): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-22 20:49:47.776: WARN/System.err(2351): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-22 20:49:47.776: WARN/System.err(2351): at dalvik.system.NativeStart.main(Native Method)
02-22 20:49:47.776: WARN/dalvikvm(2351): threadid=3: thread exiting with uncaught exception (group=0x4001e280)
¡Gracias a todos!
en Maven, la carpeta de Activos debe estar dentro de projectName / no dentro de projectName / src / main como se sugiere en otros ejemplos.
Fuente:
http://jayway.github.io/maven-android-plugin/generate-sources-mojo.html