java.io.FileNotFoundException:/file/path.jpg打开失败:ENOENT(没有这样的文件或目录)

时间:2013-05-05 03:28:16

标签: android bytearray inputstream apache-commons parse-platform

尝试将图片保存到parse.com。我需要将其转换为字节数组。我决定尝试这样做的方法是使用apache commons-io。它运作不正常。这是我的代码段;

private void saveImage() throws IOException {
    // TODO Auto-generated method stub

    InputStream header = new FileInputStream("/ClashMMA/res/drawable-hdpi/beatdown.jpg");

    ParseFile file = new ParseFile(toByteArray(header));
    try{
        file.save();
    } catch (ParseException e) {
        e.printStackTrace();
    }

    ParseObject displayImage = new ParseObject("displayImage");
    displayImage.put("header", file);
    try{
        displayImage.save();
    } catch (ParseException e1){
        e1.printStackTrace();
    }
}


private byte[] toByteArray(InputStream header) throws IOException {
    // TODO Auto-generated method stub
     ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        int l;
        byte[] data = new byte[1024];
        while ((l = header.read(data, 0, data.length)) != -1) {
          buffer.write(data, 0, l);
        }
        buffer.flush();
        return buffer.toByteArray();

}

我的错误是这个;

java.io.FileNotFoundException: /ClashMMA/res/drawable-hdpi/beatdown.jpg: open failed: ENOENT (No such file or directory)

但我确信该文件存在,因为我转到我的文件目录(在eclipse中),右键单击,然后单击Copy Qualified Name。这基本上复制了文件路径。我尝试了一些其他路径,例如关闭我的计算机,以及我的src文件夹。有人可以告诉我我做错了什么吗?为什么它不会读取文件,实际上它在那里?详细解释请。

1 个答案:

答案 0 :(得分:5)

Eclipse项目中的文件不在(真实的或模拟的)Android文件系统中,而这正是Android FileInputStream所在的位置。 (有充分的理由!Eclipse的主机文件系统不会出现在真正的Android设备上。)

你基本上有两个选择: