diff options
author | 2013-10-03 15:37:59 -0700 | |
---|---|---|
committer | 2013-10-03 15:37:59 -0700 | |
commit | dee48c880a2e5c1a4b1489b755b6a48c7631bdd2 (patch) | |
tree | 2e8fea2b754fdd15cb4da910a127efba329b8d8b /java/src/com/android/inputmethod/latin/makedict/SparseTable.java | |
parent | 9f08312fad00c4e48b3cba68c89caca5c5aa8481 (diff) | |
parent | 9019d51c0cc10621a963d1089867c88eff3c9c5a (diff) | |
download | latinime-dee48c880a2e5c1a4b1489b755b6a48c7631bdd2.tar.gz latinime-dee48c880a2e5c1a4b1489b755b6a48c7631bdd2.tar.xz latinime-dee48c880a2e5c1a4b1489b755b6a48c7631bdd2.zip |
am 9019d51c: am af5511c8: am 25f47828: Merge "Separate bigram entries from the trie file."
* commit '9019d51c0cc10621a963d1089867c88eff3c9c5a':
Separate bigram entries from the trie file.
Diffstat (limited to 'java/src/com/android/inputmethod/latin/makedict/SparseTable.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/makedict/SparseTable.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/makedict/SparseTable.java b/java/src/com/android/inputmethod/latin/makedict/SparseTable.java index 0b9cf91d2..96d057a44 100644 --- a/java/src/com/android/inputmethod/latin/makedict/SparseTable.java +++ b/java/src/com/android/inputmethod/latin/makedict/SparseTable.java @@ -18,6 +18,9 @@ package com.android.inputmethod.latin.makedict; import com.android.inputmethod.annotations.UsedForTesting; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; @@ -147,4 +150,45 @@ public class SparseTable { BinaryDictEncoderUtils.writeUIntToStream(contentOutStream, index, 4); } } + + @UsedForTesting + public void writeToFiles(final File lookupTableFile, final File contentFile) + throws IOException { + FileOutputStream lookupTableOutStream = null; + FileOutputStream contentOutStream = null; + try { + lookupTableOutStream = new FileOutputStream(lookupTableFile); + contentOutStream = new FileOutputStream(contentFile); + write(lookupTableOutStream, contentOutStream); + } finally { + if (lookupTableOutStream != null) { + lookupTableOutStream.close(); + } + if (contentOutStream != null) { + contentOutStream.close(); + } + } + } + + private static byte[] readFileToByteArray(final File file) throws IOException { + final byte[] contents = new byte[(int) file.length()]; + FileInputStream inStream = null; + try { + inStream = new FileInputStream(file); + inStream.read(contents); + } finally { + if (inStream != null) { + inStream.close(); + } + } + return contents; + } + + @UsedForTesting + public static SparseTable readFromFiles(final File lookupTableFile, final File contentFile, + final int blockSize) throws IOException { + final byte[] lookupTable = readFileToByteArray(lookupTableFile); + final byte[] content = readFileToByteArray(contentFile); + return new SparseTable(lookupTable, content, blockSize); + } } |