gpt4 book ai didi

java - Blackberry - 如何使用输入/输出流将文件复制到 SD 卡?

转载 作者:行者123 更新时间:2023-12-02 00:27:23 25 4
gpt4 key购买 nike

我正在尝试使用输入/输出流将我的 Blackberry Assets 文件夹复制到 SD 卡。但是我似乎无法让它发挥作用。运行 Blackberry 模拟器时收到一条错误消息,指示 error: Cannot find symbol inConn.close(); & outConn.close();。有人可以告诉我我做错了什么吗?

import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult;
import javax.microedition.io.*;
import javax.microedition.io.file.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.json.me.JSONArray;

public static PluginResult execute(JSONArray args) {
String[] resourseFileNames = {"file1","file2"."file3"};
final int length = resourseFileNames.length;

for(int i=0; i<length; i++) {
String srcFile = "file:///store/home/user/sample/www" + resourseFileNames[i];
FileConnection srcConn = (FileConnection) Connector.open(srcFile, Connector.READ);
InputStream in = srcConn.openInputStream();
String dstFile = "file:///SDCard/MyAppName/www" + resourseFileNames[i];
FileConnection dstConn = (FileConnection)Connector.open(dstFile, Connector.WRITE);
OutputStream out = dstConn.openOutputStream();
// Copy the bits from instream to outstream
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
inConn.close();
out.close();
outConn.close();
}
String value = "OK";
return new PluginResult(PluginResult.Status.OK, value);
}

我正在使用 Phonegap 如果这有什么区别的话。谢谢。

最佳答案

您没有正确打开流。相反,您应该对源文件和目标文件使用单独的 FileConnection。然后使用 FileConnection#openInputStream()打开 InputStreamFileConnection#openOutputStream()打开OutputStream

代码片段:

for(int i=0; i<length; i++) {
try {
String srcFile = "file:///store/home/user/sample/www" + resourseFileNames[i];
FileConnection srcConn = (FileConnection) Connector.open(srcFile, Connector.READ);
InputStream in = srcConn.openInputStream();

String dstFile = "file:///SDCard/myAppName/www" + resourseFileNames[i];
FileConnection dstConn = (FileConnection)Connector.open(dstFile, Connector.WRITE);
OutputStream out = dstConn.openOutputStream();

// Copy the bits from instream to outstream
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}

in.close();
srcConn.close();

out.close();
dstConn.close();
} catch (IOException e) {
e.printStackTrace();
}
}

更新 1:修复了导致“找不到符号”错误的一些拼写错误。

更新 2:用 try/catch 包围代码(捕获 IOException)。

关于java - Blackberry - 如何使用输入/输出流将文件复制到 SD 卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9741803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com