title: Android: open failed: ENOENT (No such file or directory)
body: <p>Hi  i am trying to read excel from assets and wanted to convert it into JSON, But i am getting the <strong>error: open failed:ENOENT(No such file or directory)</strong>, searched many SO questions but could not find the solution
  Below is my code</p>
  
  <pre><code>public void readXlsFileAndConvertToJsonObject() {
       JSONArray jsonArray = new JSONArray();
       JSONArray mainJsonArray = new JSONArray();
       try {
  
           File file = new File("file:///android_asset/filters.xls");
           FileInputStream fis = new FileInputStream(file);
           //final FileInputStream file = new FileInputStream(new File("filters.xls"));
  
           int count = 0;
           // Get the workbook instance for XLS file
           HSSFWorkbook workbook = new HSSFWorkbook(fis);
  
           // Get first sheet from the workbook
           HSSFSheet sheet = workbook.getSheetAt(0);
  
           // Iterate through each rows from first sheet
           Iterator &lt; Row &gt; rowIterator = sheet.iterator();
           while (rowIterator.hasNext()) {
               Row row = rowIterator.next();
               //LOGGER.info("count is " + count);
               if (count == 0 || count == 1) {} else {
                   try {
                       JSONObject jsonMaterialObject = new JSONObject();
                       // Name
                       jsonMaterialObject.put("name", row.getCell(0)
                           .toString());
                       // thick ness
                       jsonMaterialObject.put("thickness", row.getCell(4)
                           .toString());
                       // rating_1
                       jsonMaterialObject.put("rating_1", row.getCell(5)
                           .toString());
                       // rating_2
                       jsonMaterialObject.put("rating_2", row.getCell(6)
                           .toString());
  
                       jsonMaterialObject.put("low_frequency_rank", row
                           .getCell(7).toString());
  
                       jsonMaterialObject.put("medium_frequency_rank", row
                           .getCell(8).toString());
  
                       jsonMaterialObject.put("high_frequency_rank", row
                           .getCell(9).toString());
  
                       // Add file size
                       final File dir = new File("file:///android_asset/filename");
                       final File[] ListFiles = dir.listFiles();
                       boolean found = false;
                       if (ListFiles.length == 0) {} else {
                           for (File aFile: ListFiles) {
                               System.out.println("Afile Name " + aFile.getName());
                               System.out.println("A file from json  Name " + row.getCell(0).toString());
                               if (aFile.getName().equalsIgnoreCase(
                                       row.getCell(0).toString() + ".pdf")) {
                                   jsonMaterialObject.put("fileSize", truncateDecimal(aFile.length() / 1024, 2));
                                   found = true;
                               }
                               if (found) {
                                   break;
                               }
                           }
  
                           jsonMaterialObject.put("pdfFileName", row
                               .getCell(0).toString() + ".pdf");
                       }
  
                       jsonArray.put(jsonMaterialObject);
                   } catch (JSONException e) {
                       // TODO Auto-generated catch block
                       e.printStackTrace();
                   }
               }
               count++;
  
           }
           ((Closeable) file).close();
  
       } catch (FileNotFoundException e) {} catch (IOException e) {}
       createMaterialJson(jsonArray.toString(), "finalfile.json");
   }
  </code></pre>
  
  <p>I mentioned the permissions as below</p>
  
  <pre><code>&lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt;
      &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&gt;
  </code></pre>
  
  <p>Below is my Trace</p>
  
  <pre><code>11-25 12:32:35.535: I/System.out(20019): Exception accured in readXlsFileAndConvertToJsonObject /file:/android_asset/filters.xls: open failed: ENOENT (No such file or directory)
  </code></pre>