title: FileNotFoundException with FileOutputStream open
body: <p>I'm having a FileNotFoundException when i try to create a FileOutputStream. The file does exists according to file.exists. i've tried everything like file.mkdir(s) ...
  I'm on a mac and i'm using gauva.
  The file input is ''</p>
  
  <pre><code>java.io.FileNotFoundException: /Users/big_Xplosion/mods/Blaze-Installer/installer/test
  at java.io.FileOutputStream.open(Native Method)
  at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:194)
  at com.google.common.io.Files$FileByteSink.openStream(Files.java:223)
  at com.google.common.io.Files$FileByteSink.openStream(Files.java:211)
  at com.google.common.io.ByteSource.copyTo(ByteSource.java:203)
  at com.google.common.io.Files.copy(Files.java:382)
  at com.big_Xplosion.blazeInstaller.util.DownloadUtil.downloadFile(DownloadUtil.java:80)
  at com.big_Xplosion.blazeInstaller.action.MCPInstall.downloadMCP(MCPInstall.java:78)
  at com.big_Xplosion.blazeInstaller.action.MCPInstall.install(MCPInstall.java:30)
  at com.big_Xplosion.blazeInstaller.util.InstallType.install(InstallType.java:37)
  at com.big_Xplosion.blazeInstaller.BlazeInstaller.handleOptions(BlazeInstaller.java:51)
  at com.big_Xplosion.blazeInstaller.BlazeInstaller.main(BlazeInstaller.java:26)
  </code></pre>
  
  <p>the code in the main class.</p>
  
  <pre><code>File file = mcpSpec.value(options); //the file input given is 'test'
  
          try
          {
              InstallType.MCP.install(file.getAbsoluteFile());
          }
          catch (IOException e)
          {
              e.printStackTrace();
          }
  </code></pre>
  
  <p>The execution code <strong>The mcpTarget file has to be a directory</strong></p>
  
  <pre><code>public boolean install(File mcpTarget) throws IOException
  {
      mcpTarget.mkdirs();
  
      if (isMCPInstalled(mcpTarget))
          System.out.println(String.format("MCP is already installed in %s, skipped download and extraction.", mcpTarget));
      else if (isMCPDownloaded(mcpTarget))
      {
          if (!unpackMCPZip(mcpTarget))
              return false;
      }
      else
      {
          if (!downloadMCP(mcpTarget))
              return false;
  
          if (!unpackMCPZip(mcpTarget))
              return false;
      }
  
      System.out.println("Successfully downloaded and unpacked MCP");
  
      return false;
  }
  </code></pre>
  
  <p>Download MCP method</p>
  
  <pre><code>public boolean downloadMCP(File targetFile)
  {
      String mcpURL = new UnresolvedString(LibURL.MCP_DOWNLOAD_URL, new VersionResolver()).call();
  
      if (!DownloadUtil.downloadFile("MCP", targetFile, mcpURL))
      {
          System.out.println("Failed to download MCP, please try again and if it still doesn't work contact a dev.");
          return false;
      }
  
      return true;
  }
  </code></pre>
  
  <p>and the DownloadUtil.DownloadFile method</p>
  
  <pre><code>public static boolean downloadFile(String name, File path, String downloadUrl)
  {
      System.out.println(String.format("Attempt at downloading file: %s", name));
  
      try
      {
          URL url = new URL(downloadUrl);
          final URLConnection connection = url.openConnection();
          connection.setConnectTimeout(6000);
          connection.setReadTimeout(6000);
  
          InputSupplier&lt;InputStream&gt; urlSupplier = new InputSupplier&lt;InputStream&gt;()
          {
              @Override
              public InputStream getInput() throws IOException
              {
                  return connection.getInputStream();
              }
          };
  
          Files.copy(urlSupplier, path);
  
          return true;
      }
      catch (Exception e)
      {
          e.printStackTrace();
  
          return false;
      }
  }
  </code></pre>