I have a log file containing the following data:
The shortest path (2) :: RV3280-RV0973C-RV2888C
The shortest path (1) :: RV3280-RV2502C
The shortest path (2) :: RV3280-RV2501C-RV1263
Shortest path (2) :: RV2363-Rv3285-RV3280
Each line requires a number in brackets, the name of the first protein (RV3280 in the first line) and the name of the last protein (RV2888C in the first line).
I wrote the code for this using the Scanner object.
try{ Scanner s = new Scanner(new File(args[0])); while (s.hasNextLine()) { s.findInLine("Shortest path\\((\\d+)\\)::(\\w+).*-(\\w+)"); // at each line, look for this pattern MatchResult result = s.match(); // results from for (int i=1; i<=result.groupCount(); i++) { System.out.println(result.group(i)); } s.nextLine(); // line no. 29 } s.close(); } catch (FileNotFoundException e) { System.out.print("cannot find file"); }
I get the desired results, but also get an error message. The output I get for the above input file is:
Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Scanner.java:1516) at nearnessindex.Main.main(Main.java:29) 2 RV3280 RV2888C 1 RV3280 RV2502C 2 RV3280 RV1263 2 RV2363 RV3280 Java Result: 1 BUILD SUCCESSFUL (total time: 1 second)
Why does this error occur and how can I fix it?
java java.util.scanner
Harish
source share