Я знаю, что этот вопрос может звучать как дубликат, но это не так. Ни один из других вопросов об этой ошибке в Weka не смог решить мою проблему, и они были связаны с файлами arff. Я использую текстовый файл.
После успешного использования Weka в Eclipse я захотел использовать его для приложения для Android. Поэтому я создаю и храню файл во внутреннем хранилище устройства и могу читать с него. Вот как я создаю файл :
String filename = "mydata";
String relation = "@relation mydata";
String attributes = "\n@attribute cheek numeric\n\n" +
"@attribute eye numeric\n" +
"@attribute mouth numeric\n" +
"@attribute nose numeric\n" +
"@attribute name {0, 1, 2}";
String data = "\n\n@data\n" +
"58.319244, 35.185467, 28.329004, 19.908704, 0\n" +
"64.63182, 36.4422 , 30.721794, 20.632916, 1" + "\n" +
"65.45019, 36.28883, 27.934803, 26.095049, 2";
FileOutputStream outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write((relation + attributes + data).getBytes());
outputStream.close();
И когда я читаю из файла, это выглядит так:
@relation mydata
@attribute cheek numeric
...
@data
58.319244, 35.185467, 28.329004, 19.908704, 0
...
Я получаю ошибку:
java.io.IOException: преждевременное завершение файла, чтение токена [EOF], строка 1
Ошибка возникает в последней строке:
FileInputStream fis = getApplication().openFileInput("practice");
InputStreamReader isr = new InputStreamReader (fis);
BufferedReader bufferedReader = new BufferedReader (isr);
Объединенные экземпляры = новые экземпляры (bufferedReader);
Я потратил много времени на поиск этой ошибки, но не смог найти решение. Еще раз, я не сохраняю этот файл arff, я думаю, что он сохраняется как текстовый файл. Я также считаю, что ошибка связана с получением BufferedReader
и передачей его в конструктор Instances
.
Кто-нибудь сможет помочь мне решить эту проблему? Я использовал текстовый файл в Eclipse с аналогичной структурой, но теперь в Android он дает мне эту ошибку.
Обновление:
Я нашел решение своей проблемы и разместил его ниже. Проблема была с чтением файла в BufferedReader
.