You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by br...@apache.org on 2013/01/08 00:21:50 UTC
[1/3] android commit: Add support for reading slices of text files.
Add support for reading slices of text files.
Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/552885db
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/552885db
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/552885db
Branch: refs/heads/master
Commit: 552885dbd3a05672b2f347b15307d4a902a0086a
Parents: 6efeb14
Author: Braden Shepherdson <br...@chromium.org>
Authored: Wed Jan 2 15:34:39 2013 -0800
Committer: Braden Shepherdson <br...@chromium.org>
Committed: Wed Jan 2 15:34:39 2013 -0800
----------------------------------------------------------------------
framework/src/org/apache/cordova/FileUtils.java | 25 +++++++++++++++--
1 files changed, 22 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/552885db/framework/src/org/apache/cordova/FileUtils.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/FileUtils.java b/framework/src/org/apache/cordova/FileUtils.java
index 8aff262..be5224e 100755
--- a/framework/src/org/apache/cordova/FileUtils.java
+++ b/framework/src/org/apache/cordova/FileUtils.java
@@ -112,7 +112,16 @@ public class FileUtils extends CordovaPlugin {
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, b));
}
else if (action.equals("readAsText")) {
- String s = this.readAsText(args.getString(0), args.getString(1));
+ int start = 0;
+ int end = Integer.MAX_VALUE;
+ if (args.length() >= 3) {
+ start = args.getInt(2);
+ }
+ if (args.length() >= 4) {
+ end = args.getInt(3);
+ }
+
+ String s = this.readAsText(args.getString(0), args.getString(1), start, end);
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, s));
}
else if (action.equals("readAsDataURL")) {
@@ -932,17 +941,27 @@ public class FileUtils extends CordovaPlugin {
* @param filename The name of the file.
* @param encoding The encoding to return contents as. Typical value is UTF-8.
* (see http://www.iana.org/assignments/character-sets)
+ * @param start Start position in the file.
+ * @param end End position to stop at (exclusive).
* @return Contents of file.
* @throws FileNotFoundException, IOException
*/
- public String readAsText(String filename, String encoding) throws FileNotFoundException, IOException {
+ public String readAsText(String filename, String encoding, int start, int end) throws FileNotFoundException, IOException {
+ int diff = end - start;
byte[] bytes = new byte[1000];
BufferedInputStream bis = new BufferedInputStream(getPathFromUri(filename), 1024);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int numRead = 0;
- while ((numRead = bis.read(bytes, 0, 1000)) >= 0) {
+
+ if (start > 0) {
+ bis.skip(start);
+ }
+
+ while ( diff > 0 && (numRead = bis.read(bytes, 0, Math.min(1000, diff))) >= 0) {
+ diff -= numRead;
bos.write(bytes, 0, numRead);
}
+
return new String(bos.toByteArray(), encoding);
}