33import android .content .Context ;
44import android .util .Log ;
55import com .annimon .stream .Collectors ;
6+ import com .annimon .stream .Exceptional ;
67import com .annimon .stream .Stream ;
78import java .io .BufferedReader ;
8- import java .io .IOException ;
99import java .io .InputStream ;
1010import java .io .InputStreamReader ;
11- import java .util .LinkedList ;
11+ import java .util .ArrayList ;
1212import java .util .List ;
1313
1414public final class Utils {
@@ -23,22 +23,23 @@ public static AdapterCollector collectAdapter(WordAdapter adapter) {
2323 }
2424
2525 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+ }
3335 }
34- } catch (IOException e ) {
35- Log .e ("Java 8 Example" , "Utils.readWords" , e );
36- }
3736
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 <>());
4344 }
4445}
0 commit comments