У меня есть файл, который может отличаться по размеру в терминах строк. Единственное, что я знаю, это то, что он выполнен из одних и тех же модулей, скажем, 7 строк. Таким образом, это означает, что .txt может быть 7, 14, 21, 70, 77 и т. Д. Строк. Мне нужно получить только заголовок каждого модуля - строка 0, 7 и т. Д.Чтение определенной строки из файла .txt в android
Я написал этот код для работы:
textFile = new File(Environment.getExternalStorageDirectory() + "/WorkingDir/" + "modules.txt");
List<String> headers = new ArrayList<>();
if (textFile.exists()) {
try {
FileInputStream fs= new FileInputStream(textFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(fs));
int lines = 0;
int headLine = 0;
while (reader.readLine() != null) { lines++;}
Log.i("Debug", Integer.toString(lines));
while(headLine < lines){
for (int i = 0; i < dateLine - 1; i++)
{
reader.readLine();
Log.i("Debug", reader.readLine());
}
headers.add(reader.readLine());
headLine += 7;
}
Log.i("Debug", headers.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Проблема заключается в том, что она всегда возвращает [NULL]. Я не знаю, где проблема, так как я использовал подобные вопросы из переполнения в качестве ссылок.
http://stackoverflow.com/questions/2312756/how-to-read-a-specific-line-using-the-specific-line-number-from-a-file-in-java – sasikumar
Я прочитал этот вопрос, вот где я получил общую идею. http://stackoverflow.com/a/2312789/4491661 - в частности, –
вы получаете буферизованный читатель в файл, подобный этому BufferReader br = new BufferedReader (новый FileReader (файл)), а затем 'line = br.readLine () ' – Bhargav