diff options
author | 2012-08-23 21:56:02 -0700 | |
---|---|---|
committer | 2012-08-23 21:56:02 -0700 | |
commit | 5cc596160a7df3547d81487e1a556f5d47cd7d70 (patch) | |
tree | d213201f37b2f088bd5cf032b903574b69cd006f /tools/dicttool/src | |
parent | 687a244703a02323ebd64433cbaead5def499861 (diff) | |
parent | d4fe7fda303ff937d2e44c15dde9d90cbf59376b (diff) | |
download | latinime-5cc596160a7df3547d81487e1a556f5d47cd7d70.tar.gz latinime-5cc596160a7df3547d81487e1a556f5d47cd7d70.tar.xz latinime-5cc596160a7df3547d81487e1a556f5d47cd7d70.zip |
Merge "Use ByteBuffer when reading FusionDictionary from file." into jb-mr1-dev
Diffstat (limited to 'tools/dicttool/src')
-rw-r--r-- | tools/dicttool/src/android/inputmethod/latin/dicttool/DictionaryMaker.java | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/tools/dicttool/src/android/inputmethod/latin/dicttool/DictionaryMaker.java b/tools/dicttool/src/android/inputmethod/latin/dicttool/DictionaryMaker.java index 25e1740cb..fbfc1dabb 100644 --- a/tools/dicttool/src/android/inputmethod/latin/dicttool/DictionaryMaker.java +++ b/tools/dicttool/src/android/inputmethod/latin/dicttool/DictionaryMaker.java @@ -27,7 +27,8 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; -import java.io.RandomAccessFile; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; import java.util.Arrays; import java.util.LinkedList; @@ -238,8 +239,23 @@ public class DictionaryMaker { */ private static FusionDictionary readBinaryFile(final String binaryFilename) throws FileNotFoundException, IOException, UnsupportedFormatException { - final RandomAccessFile inputFile = new RandomAccessFile(binaryFilename, "r"); - return BinaryDictInputOutput.readDictionaryBinary(inputFile, null); + FileInputStream inStream = null; + + try { + final File file = new File(binaryFilename); + inStream = new FileInputStream(file); + final ByteBuffer buffer = inStream.getChannel().map( + FileChannel.MapMode.READ_ONLY, 0, file.length()); + return BinaryDictInputOutput.readDictionaryBinary(buffer, null); + } finally { + if (inStream != null) { + try { + inStream.close(); + } catch (IOException e) { + // do nothing + } + } + } } /** |