3
3
import android .content .Context ;
4
4
import android .util .Log ;
5
5
import com .annimon .stream .Collectors ;
6
+ import com .annimon .stream .Exceptional ;
6
7
import com .annimon .stream .Stream ;
7
8
import java .io .BufferedReader ;
8
- import java .io .IOException ;
9
9
import java .io .InputStream ;
10
10
import java .io .InputStreamReader ;
11
- import java .util .LinkedList ;
11
+ import java .util .ArrayList ;
12
12
import java .util .List ;
13
13
14
14
public final class Utils {
@@ -23,22 +23,23 @@ public static AdapterCollector collectAdapter(WordAdapter adapter) {
23
23
}
24
24
25
25
public static List <Word > readWords (Context context ) {
26
- final List <String > lines = new LinkedList <>();
27
- try (final InputStream is = context .getAssets ().open ("words.txt" );
28
- final InputStreamReader isr = new InputStreamReader (is , "UTF-8" );
29
- final BufferedReader reader = new BufferedReader (isr )) {
30
- String line ;
31
- while ( (line = reader .readLine ()) != null ) {
32
- lines .add (line );
26
+ return Exceptional .of (() -> {
27
+ final List <String > lines = new ArrayList <>();
28
+ try (final InputStream is = context .getAssets ().open ("words.txt" );
29
+ final InputStreamReader isr = new InputStreamReader (is , "UTF-8" );
30
+ final BufferedReader reader = new BufferedReader (isr )) {
31
+ String line ;
32
+ while ( (line = reader .readLine ()) != null ) {
33
+ lines .add (line );
34
+ }
33
35
}
34
- } catch (IOException e ) {
35
- Log .e ("Java 8 Example" , "Utils.readWords" , e );
36
- }
37
36
38
- return Stream .of (lines )
39
- .map (str -> str .split ("\t " ))
40
- .filter (arr -> arr .length == 2 )
41
- .map (arr -> new Word (arr [0 ], arr [1 ]))
42
- .collect (Collectors .toList ());
37
+ return Stream .of (lines )
38
+ .map (str -> str .split ("\t " ))
39
+ .filter (arr -> arr .length == 2 )
40
+ .map (arr -> new Word (arr [0 ], arr [1 ]))
41
+ .collect (Collectors .toList ());
42
+ }).ifException (e -> Log .e ("Java 8 Example" , "Utils.readWords" , e ))
43
+ .getOrElse (new ArrayList <>());
43
44
}
44
45
}
0 commit comments