Bonjour,
J'essaie de coder une méthode peek() [voir la dernière méthode dans le code ci-bas]. L'idée étant de faire en sorte que "public SAMLine peek()" me renseigne que sera la prochaine ligne SAM (vide en fin de fichier), mais sans avancer dans le fichier. J'ai beau essayer mais je ne vois pas comment y arriver.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 public class SAMFile implements Iterator<SAMLine> { private BufferedReader in = null; private String line = null; private SAMLine string = null; private FileReader reader; /** * Constructs ... * @param file * @throws IOException */ public SAMFile(File file) throws IOException { try { reader = new FileReader(file); in = new BufferedReader(reader); line = in.readLine(); if (!line.startsWith("@")) { string = new SAMLine(line); } if (string == null) { in.close(); in = null; } } catch (IOException e) { string = null; if (in != null) { try { in.close(); } catch (IOException e2) {} } in = null; throw e; } } @Override public boolean hasNext() { return string != null; } @Override public SAMLine next() throws NoSuchElementException { SAMLine returnString = string; try { if (string == null) { throw new NoSuchElementException("Next line is not available"); } else { if (!line.startsWith("@")) { string = new SAMLine(line); } if ((string == null) && (in != null)) { in.close(); in = null; } } } catch (NoSuchElementException | IOException ex) { throw new NoSuchElementException("Exception caught in SAMLineIterator.next() " + ex); } return returnString; } @Override public void remove() { throw new UnsupportedOperationException("FileLineIterator.remove() is not supported"); } @Override protected void finalize() throws Throwable { try { string = null; if (in != null) { try { in.close(); } catch (Exception e) {} } in = null; } finally { super.finalize(); } } public SAMLine peek() { // TO DO return null; } }
Partager