2
2
import java .io .FileInputStream ;
3
3
import java .io .FileReader ;
4
4
import java .io .InputStreamReader ;
5
+ import java .nio .charset .Charset ;
6
+ import java .nio .charset .CharsetDecoder ;
7
+ import java .nio .charset .CodingErrorAction ;
5
8
import java .util .Properties ;
6
9
7
10
import jdbm .RecordManager ;
@@ -29,7 +32,7 @@ static public void main(String argv[]) {
29
32
30
33
try {
31
34
// open database and setup an object cache
32
- recman = RecordManagerFactory .createRecordManager ("C:/ skk_dict_btree" , props );
35
+ recman = RecordManagerFactory .createRecordManager ("skk_dict_btree" , props );
33
36
34
37
// try to reload an existing B+Tree
35
38
recid = recman .getNamedObject ( BTREE_NAME );
@@ -50,8 +53,11 @@ static public void main(String argv[]) {
50
53
InputStreamReader fr = null ;
51
54
BufferedReader br = null ;
52
55
53
- FileInputStream fis = new FileInputStream ("C:/android-sdk-windows-1.5_r1/tools/skk_L_dic_for_android_sorted.utf8" );
54
- fr = new InputStreamReader (fis , "UTF-8" );
56
+ FileInputStream fis = new FileInputStream ("mazedict-utf8-sorted.txt" );
57
+ CharsetDecoder decoder = Charset .forName ("UTF-8" ).newDecoder ();
58
+ decoder .onMalformedInput (CodingErrorAction .REPORT );
59
+ decoder .onUnmappableCharacter (CodingErrorAction .REPORT );
60
+ fr = new InputStreamReader (fis , decoder );
55
61
br = new BufferedReader (fr );
56
62
57
63
int c = 0 ;
@@ -73,6 +79,7 @@ static public void main(String argv[]) {
73
79
74
80
// make the data persistent in the database
75
81
recman .commit ();
82
+ recman .close ();
76
83
77
84
} catch ( Exception e ) {
78
85
throw new RuntimeException (e );
0 commit comments