I want to get data form text files ,and I use Scanner to get data form text file. It's profile save pattern
name
status
friend
friend
.
.
(Blank line)
Blank Line is separate each profile.(friend will looping till next line is a Blank Line)
john
happy
james
james
sad
john
And i code to get file form text like this
try{
Scanner fileIn = new Scanner(new FileReader("testread.txt"));
while(fileIn.hasNextLine()){
String line = fileIn.nextLine();
String linename = fileIn.nextLine();
String statusline = fileIn.nextLine();
println("name "+linename);
println("status "+statusline);
while(/*I asked at this*/)){
String friendName = fileIn.nextLine();
println("friend "+friendName);
}
}
}catch(IOException e){
println("Can't open file");
}
What condition that I should use to detect blank line between profile?
After checking for an existing line with
scanner.hasNextLine()
method, you can use this condition:and use the
line
variable in your logic.You can simply check your
scanner.nextLine()
for a Newline"\n"
(I mean""
, becausenextLine()
does not read"\n"
at the end of any line).. If its equal, it will be a blank line..BTW, there is a problem with your code: -
You are assuming that your
fileIn.hasNextLine()
will confirm about the next three lines beingnot null
.Everytime you do a
fileIn.nextLine()
you need to check whether it's available or not.. Or you will get exception...*EDIT: - O.o... I see there you have handled exception.. Then there will be no problem.. But still you should modify the above code.. It doesn't look pretty..
You can implement custom function like below which will return you
nextLine
if it is not empty.Try this...