Unable to read lines from text file… here is a solution to the problem.
Unable to read lines from text file
I have such a method:
public int getIncrement() {
String extractFolder = "/mnt/sdcard/MyFolder";
boolean newFolder = new File(extractFolder).mkdir();
int counter = 0;
try {
File root = new File(extractFolder);
if (root.canWrite()){
File gpxfile = new File(root, "gpxfile.txt");
FileWriter gpxwriter = new FileWriter(gpxfile);
BufferedWriter out = new BufferedWriter(gpxwriter);
Scanner scanner = new Scanner(new FileInputStream(gpxfile.getAbsolutePath()), "UTF-8");
Log.i("PATH: ", extractFolder + "/gpxfile.txt");
while(scanner.hasNextLine()) {
String inc = scanner.nextLine();
counter = Integer.parseInt(inc);
Log.i("INSIDE WHILE: ", Integer.toString(counter));
}
counter++;
out.write(Integer.toString(counter));
out.close();
}
} catch (IOException e) {
Log.e("GEN_PCN: ", "Could not write file " + e.getMessage());
}
return counter;
}
What I want to accomplish is to return the contents of this file and increment the integer
by 1. But it seems like I can’t get into the while
loop because LogCat
isn’t printing anything. Yes, make sure the path is correct.
Solution
I guess the fileWriter gpxwriter's
constructor emptied the file when the scanner
was created, so the file is empty and hasNextLine
returns false
. Why open a file to write when reading it?