]> WPIA git - gigi.git/blob - util-testing/org/cacert/gigi/localisation/FileIterable.java
fix: ResultSet.getDate is often wrong as it fetches day-precision times
[gigi.git] / util-testing / org / cacert / gigi / localisation / FileIterable.java
1 package org.cacert.gigi.localisation;
2
3 import java.io.BufferedReader;
4 import java.io.File;
5 import java.io.FileInputStream;
6 import java.io.IOError;
7 import java.io.IOException;
8 import java.io.InputStreamReader;
9 import java.util.Iterator;
10
11 public class FileIterable implements Iterable<String> {
12
13     File f;
14
15     public FileIterable(File f) {
16         this.f = f;
17     }
18
19     @Override
20     public Iterator<String> iterator() {
21         try {
22             return new Iterator<String>() {
23
24                 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f), "UTF-8"));
25
26                 String s = null;
27
28                 private void getNext() {
29                     if (s == null) {
30                         try {
31                             s = br.readLine();
32                         } catch (IOException e) {
33                             throw new IOError(e);
34                         }
35                     }
36                 }
37
38                 @Override
39                 public boolean hasNext() {
40                     getNext();
41                     return s != null;
42                 }
43
44                 @Override
45                 public String next() {
46                     String out = s;
47                     s = null;
48                     return out;
49                 }
50             };
51         } catch (IOException e) {
52             throw new IOError(e);
53         }
54     }
55 }