Путь к файлу txt для Android
Я делаю:
FileReader fin = new FileReader("file:///android_asset/myFile.txt");
в Android-проекте и многих вариантах. Во время выполнения я получаю исключение, не найденное в файле. Файл присутствует и исправляется в папке с ресурсами, поэтому мой путь должен быть неправильным.
Каков абсолютный путь, который мне нужен здесь?
Ответы
Ответ 1
AssetFileDescriptor descriptor = getAssets().openFd("myfile.txt");
FileReader reader = new FileReader(descriptor.getFileDescriptor());
Попробуйте использовать вышеописанное с помощью FileDescriptors. Кажется, это самый надежный способ найти пути активов.
Ответ 2
InputStream is = getResources().getAssets().open("terms.txt");
String textfile = convertStreamToString(is);
public static String convertStreamToString(InputStream is)
throws IOException {
Writer writer = new StringWriter();
char[] buffer = new char[2048];
try {
Reader reader = new BufferedReader(new InputStreamReader(is,
"UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} finally {
is.close();
}
String text = writer.toString();
return text;
}
Ответ 3
Его не читают, потому что все активы в папке с ресурсами сжаты, попробуйте изменить его расширение на .mp3, затем прочитайте его, чтобы он не был сжат.
Ответ 4
Можете ли вы использовать что-то вроде
try {
BufferedReader br = new BufferedReader(new InputStreamReader(context.getAssets().open("fileName.txt")));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Ответ 5
Я обнаружил, что если вы используете IDE, например Eclipse, вам может понадобиться очистить - или удалить API в каталоге bin. Кажется, что активы не обновляются, когда вы делаете сборку.
Ответ 6
AssetManager am = context.getAssets();
InputStream fs = am.open("myFile.txt");