我已经得到了文件,它的大小可以根据行而不同。我所知道的唯一的事情是它由相同的模块组成,可以说是7行。所以这意味着.txt可以是7,14,21,70,77等行。我只需要获取每个模块的标题 - 第0行,第7行等。在android中读取特定行fromt .txt文件
我已经写了这个代码工作:
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();
}
}
的问题是,它总是返回[空]。我不知道问题在哪里,因为我使用了溢出的类似问题作为参考。
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 - 特别是 –
你得到一个缓冲读取器的文件就像这个'BufferedReader br = new BufferedReader(new FileReader(file))',然后'line = br.readLine )' – Bhargav