Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 黑莓-如何使用输入/输出流将文件复制到SD卡?_Java_Blackberry_Cordova - Fatal编程技术网

Java 黑莓-如何使用输入/输出流将文件复制到SD卡?

Java 黑莓-如何使用输入/输出流将文件复制到SD卡?,java,blackberry,cordova,Java,Blackberry,Cordova,我正在尝试使用输入/输出流将我的Blackberry资产文件夹复制到SD卡。然而,我似乎无法让这个工作。我在运行Blackberry模拟器时收到一条错误消息,指示错误:找不到符号incon.close();&outConn.close()。有人能告诉我我做错了什么吗 import com.phonegap.api.Plugin; import com.phonegap.api.PluginResult; import javax.microedition.io.*; import javax.m

我正在尝试使用输入/输出流将我的Blackberry资产文件夹复制到SD卡。然而,我似乎无法让这个工作。我在运行Blackberry模拟器时收到一条错误消息,指示
错误:找不到符号incon.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);
}
导入com.phonegap.api.Plugin;
导入com.phonegap.api.PluginResult;
导入javax.microedition.io.*;
导入javax.microedition.io.file.*;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入org.json.me.JSONArray;
公共静态插件Result执行(JSONArray args){
字符串[]resourcesfilenames={“file1”,“file2”,“file3”};
final int length=resourcesfilenames.length;
对于(int i=0;i 0){
out.write(buf,0,len);
}
in.close();
incon.close();
out.close();
outConn.close();
}
字符串值=“确定”;
返回新的PluginResult(PluginResult.Status.OK,value);
}

如果有什么不同的话,我正在使用Phonegap。谢谢。

您没有正确打开流。相反,您应该为源文件和目标文件使用单独的
文件连接。然后使用
打开
InputStream
和打开
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();
    }
}
for(int i=0;i 0){
out.write(buf,0,len);
}
in.close();
srcConn.close();
out.close();
dstConn.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
更新1:修复了导致无法找到符号“错误的少数打字错误


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

您没有正确打开流。相反,您应该为源文件和目标文件使用单独的
文件连接。然后使用
打开
InputStream
和打开
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();
    }
}
for(int i=0;i 0){
out.write(buf,0,len);
}
in.close();
srcConn.close();
out.close();
dstConn.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
更新1:修复了导致无法找到符号“错误的少数打字错误


更新2:代码中包含try/catch(catching IOException)。

您好,上面的内容似乎正是我想要的,但是由于某种原因,当我试图使用ant build加载模拟器时,我收到了几个错误消息,所有这些消息都指示“错误:找不到符号”-这些都是输入流,连接器等。我目前正在导入以下类:import com.phonegap.api.Plugin;导入com.phonegap.api.PluginResult;导入java.io.DataInputStream;导入java.io.DataOutputStream;导入javax.microedition.io.file;导入javax.microedition.io.file.FileConnection;谢谢,我换了几个类,现在只有incon.close();&outConn.close();找不到的符号。@weebo123如果
incon
outConn
属于
FileConnection
类型,那么一切都应该正常工作。否则,我不知道为什么它没有。嗨,是的,这就是我想的,但由于某种原因,它仍然找不到那个符号。我已经编辑了我的原始问题代码,在我的类中实现了您的修复,我还包括了我正在导入的当前库。ThanksHi,上面的内容似乎正是我想要的,但是由于某种原因,当我试图使用ant build加载模拟器时,我收到了几个错误消息,所有这些消息都指示“错误:找不到符号”-这些都是输入流,连接器等。我目前正在导入以下类:import com.phonegap.api.Plugin;导入com.phonegap.api.PluginResult;导入java.io.DataInputStream;导入java.io.DataOutputStream;导入javax.microedition.io.file;导入javax.microedition.io.file.FileConnection;谢谢,我换了几个类,现在只有incon.close();&outConn.close();找不到的符号。@weebo123如果
incon
outConn
属于
FileConnection
类型,那么一切都应该正常工作。否则,我不知道为什么它没有。嗨,是的,这就是我想的,但由于某种原因,它仍然找不到那个符号。我已经编辑了我的原始问题代码,在我的类中实现了您的修复,我还包括了我正在导入的当前库。感谢将
incon
替换为
srcConn
,将
outConn
替换为
dstConn
。这是我的打字错误。我已经更新了我的答案。我的电脑应该不会有任何问题。如果您仍然遇到问题,那么您应该检查其他代码段(将
{“file1”、“file2”、“file3”};
更改为
{“file1”、“file2”、“file3”}
。用
srccon
替换
incon
,用
dstcon
替换
outConn
。这是我的打字错误。我已经更新了我的答案。我的答案应该没有任何问题。如果你仍然遇到问题,那么你应该检查你的其他代码段(将
{file1”,“file2”,“file3”};
改为
{file1”,“file2”,“file3”};