mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-26 20:33:07 +08:00
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cordova-android
This commit is contained in:
commit
bc2e7cf317
@ -112,11 +112,29 @@ public class FileUtils extends CordovaPlugin {
|
|||||||
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, b));
|
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, b));
|
||||||
}
|
}
|
||||||
else if (action.equals("readAsText")) {
|
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));
|
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, s));
|
||||||
}
|
}
|
||||||
else if (action.equals("readAsDataURL")) {
|
else if (action.equals("readAsDataURL")) {
|
||||||
String s = this.readAsDataURL(args.getString(0));
|
int start = 0;
|
||||||
|
int end = Integer.MAX_VALUE;
|
||||||
|
if (args.length() >= 2) {
|
||||||
|
start = args.getInt(1);
|
||||||
|
}
|
||||||
|
if (args.length() >= 3) {
|
||||||
|
end = args.getInt(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
String s = this.readAsDataURL(args.getString(0), start, end);
|
||||||
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, s));
|
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, s));
|
||||||
}
|
}
|
||||||
else if (action.equals("write")) {
|
else if (action.equals("write")) {
|
||||||
@ -932,17 +950,27 @@ public class FileUtils extends CordovaPlugin {
|
|||||||
* @param filename The name of the file.
|
* @param filename The name of the file.
|
||||||
* @param encoding The encoding to return contents as. Typical value is UTF-8.
|
* @param encoding The encoding to return contents as. Typical value is UTF-8.
|
||||||
* (see http://www.iana.org/assignments/character-sets)
|
* (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.
|
* @return Contents of file.
|
||||||
* @throws FileNotFoundException, IOException
|
* @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];
|
byte[] bytes = new byte[1000];
|
||||||
BufferedInputStream bis = new BufferedInputStream(getPathFromUri(filename), 1024);
|
BufferedInputStream bis = new BufferedInputStream(getPathFromUri(filename), 1024);
|
||||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||||
int numRead = 0;
|
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);
|
bos.write(bytes, 0, numRead);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new String(bos.toByteArray(), encoding);
|
return new String(bos.toByteArray(), encoding);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -953,12 +981,19 @@ public class FileUtils extends CordovaPlugin {
|
|||||||
* @return Contents of file = data:<media type>;base64,<data>
|
* @return Contents of file = data:<media type>;base64,<data>
|
||||||
* @throws FileNotFoundException, IOException
|
* @throws FileNotFoundException, IOException
|
||||||
*/
|
*/
|
||||||
public String readAsDataURL(String filename) throws FileNotFoundException, IOException {
|
public String readAsDataURL(String filename, int start, int end) throws FileNotFoundException, IOException {
|
||||||
|
int diff = end - start;
|
||||||
byte[] bytes = new byte[1000];
|
byte[] bytes = new byte[1000];
|
||||||
BufferedInputStream bis = new BufferedInputStream(getPathFromUri(filename), 1024);
|
BufferedInputStream bis = new BufferedInputStream(getPathFromUri(filename), 1024);
|
||||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||||
int numRead = 0;
|
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);
|
bos.write(bytes, 0, numRead);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user