diff options
author | 2013-09-30 01:02:30 -0700 | |
---|---|---|
committer | 2013-09-30 01:02:30 -0700 | |
commit | af5511c8309f6a5cfd12b8d4631b59ea0c43f66e (patch) | |
tree | 9464661c490dcbdc61056a22bddfd3954e4c472f /java/src/com/android/inputmethod/latin/makedict/SparseTable.java | |
parent | 2b73561cd7b445126583559a4f73c0a3707a3955 (diff) | |
parent | 25f47828539f4af34b081afb4553e9e56fbcdbf3 (diff) | |
download | latinime-af5511c8309f6a5cfd12b8d4631b59ea0c43f66e.tar.gz latinime-af5511c8309f6a5cfd12b8d4631b59ea0c43f66e.tar.xz latinime-af5511c8309f6a5cfd12b8d4631b59ea0c43f66e.zip |
am 25f47828: Merge "Separate bigram entries from the trie file."
* commit '25f47828539f4af34b081afb4553e9e56fbcdbf3':
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); + } } |