2013-05-05 153 views
4

我是尝试将图像保存到parse.com。我需要将其转换为字节数组。我决定尝试这样做的方式是使用apache commons-io。它工作不正常。这是我的代码片段;java.io.FileNotFoundException:/file/path.jpg打开失败:ENOENT(没有这样的文件或目录)

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)

但我相信,该文件是存在的,因为我去了我的文件目录(日食),右点击,并点击Copy Qualified Name。这基本上复制文件路径。我尝试了一些其他的路径,比如我的电脑,以及我的src文件夹。有人可以告诉我我做错了什么吗?为什么当它实际上在那里时不会读取文件?请详细说明。

+1

我有这个问题。我删除了以编程方式创建的文件夹,并手动创建并解决了问题! – breceivemail 2013-08-24 08:30:00

回答

5

您的Eclipse项目中的文件不在(真实或模拟的)Android文件系统中,并且这是Android FileInputStream正在查找的位置。 (!有很好的理由Eclipse的主机文件系统不会有一个真正的Android设备上。)

你基本上有两个选择:

+0

您可以将所需的每个图像添加到资源文件夹中。 – 2013-05-05 04:08:49

相关问题