Хорошо, я официально разочарован обработкой файлов на Android. Я новичок в этом (всего несколько дней), поэтому я могу просто пропустить что-то очевидное. Я успешно написал короткий файл из нескольких строк с данными CSV в каждой строке. Это не проблема; считывание есть. Я начал с этим (выезд из обработки исключений и анализ для ясности):Различные методы чтения-строки, не срабатывающие на Android
FileInputStream in = context.openFileInput("foo.txt");
InputStreamReader isr = new InputStreamReader(in);
BufferedReader buffreader = new BufferedReader(isr);
String inline;
while((inline = buffreader.readLine())!=null)
{
// parse CSV here
}
я получил немедленный нуль при чтении строки. Поэтому я работал над строкой и пытался читать сырые байты, используя различные примеры в SO как шаблон. Я не буду воспроизводить все терпит неудачу, но такие вещи, как это не получилось:
FileInputStream in = context.openFileInput("foo.txt");
InputStreamReader isr = new InputStreamReader(in);
BufferedReader buffreader = new BufferedReader(isr);
CharBuffer buff = CharBuffer.allocate(1024);
isr.read(buff);
String s = buff.toString();
Debugging показал, что буфер символов и строка потребляли символы, но они были пусты. Хорошо, я могу по-настоящему пойти в старую школу (я запрограммировал на C до того, как ей было десять лет), если это необходимо. Следующие работали:
FileInputStream in = context.openFileInput("foo.txt");
InputStreamReader isr = new InputStreamReader(in);
int c;
String foo = "";
while((c = isr.read())>=0)
foo += (char)c;
«Foo» удалось получить все содержимое, которое я могу расколоть и процесс, но мне не нравится, что это так грубый. Да, это работает, но я хотел бы знать, почему другие этого не сделали. Я старался придерживаться различных примеров в SO, но не имел успеха.
Любые идеи о том, что может быть неправильно с первыми попытками?
Просьба foo.txt файл –
Для меня код вы предоставляете (первый, не смотрел другие из них) является правильным. Возможно, проблема в том, что вы просто не открываете файл? Где находится файл? В папке с активами? – HpTerm
Yeah..openFileInput для внутреннего хранилища (Application package) .so Я уверен, что ваш файл там отсутствует. –