title: Writing to external storage filenotfoundexception
body: <p>I am attempting to write a file to external storage in android.  I keep getting the error, "java.io.FileNotFoundException: /mnt/sdcard/Survey.txt (Is a directory)."  The method that contains the code for this is as follows:  </p>
  
  <pre><code>public String sendFile(System system) throws FileNotFoundException {
  
      File writeable = new File(Environment.getExternalStorageDirectory()
              .getAbsolutePath() + "/Survey.txt");
      try {
          writeable.createNewFile();
      } catch (IOException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
      }
  
      try {
  
          Log.w("Before FO", "***");
          if (!Environment.getExternalStorageState().equals(
                  Environment.MEDIA_MOUNTED)) {
              Toast.makeText(context, "External SD card not mounted",
                      Toast.LENGTH_LONG).show();
          } else {
              FileOutputStream f = new FileOutputStream(writeable);
              Log.w("before write", "0");
  
              f.write("HELLOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO".getBytes());
              Log.w("before write", "1");
              f.close();
          }
      } catch (Exception e) {
          Log.w("Write sd", e.toString());
      }
  
      return writeable.getAbsolutePath();
  }
  </code></pre>
  
  <p>I believe the program is crashing on the FileOutputStream deceleration, because Log.w("Before FO", "<em>*</em>"); executes.  I have been searching for an answer to this problem for several day, so any help will be greatly appreciated.  Thanks!</p>
  
  <pre><code>01-19 14:07:33.839: W/Before FO(641): ***
  01-19 14:07:33.857: W/Write sd(641): java.io.FileNotFoundException: /mnt/sdcard/Survey.txt (Is a directory)
  01-19 14:07:33.857: W/Write sd(641):    at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
  01-19 14:07:33.857: W/Write sd(641):    at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:239)
  01-19 14:07:33.857: W/Write sd(641):    at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:101)
  01-19 14:07:33.857: W/Write sd(641):    at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:77)
  01-19 14:07:33.857: W/Write sd(641):    at premise.survey.IOInterface.sendFile(IOInterface.java:315)
  01-19 14:07:33.857: W/Write sd(641):    at premise.survey.PremiseSurveyActivity.onClick(PremiseSurveyActivity.java:1119)
  01-19 14:07:33.857: W/Write sd(641):    at android.view.View.performClick(View.java:3110)
  01-19 14:07:33.857: W/Write sd(641):    at android.view.View$PerformClick.run(View.java:11934)
  01-19 14:07:33.857: W/Write sd(641):    at android.os.Handler.handleCallback(Handler.java:587)
  01-19 14:07:33.857: W/Write sd(641):    at android.os.Handler.dispatchMessage(Handler.java:92)
  01-19 14:07:33.857: W/Write sd(641):    at android.os.Looper.loop(Looper.java:132)
  01-19 14:07:33.857: W/Write sd(641):    at android.app.ActivityThread.main(ActivityThread.java:4123)
  01-19 14:07:33.857: W/Write sd(641):    at java.lang.reflect.Method.invokeNative(Native Method)
  01-19 14:07:33.857: W/Write sd(641):    at java.lang.reflect.Method.invoke(Method.java:491)
  01-19 14:07:33.857: W/Write sd(641):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
  01-19 14:07:33.857: W/Write sd(641):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
  01-19 14:07:33.857: W/Write sd(641):    at dalvik.system.NativeStart.main(Native Method)
  01-19 14:07:33.857: I/ActivityManager(73): Starting: Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras) } from pid 641
  01-19 14:07:33.857: W/WindowManager(73): Failure taking screenshot for (230x341) to layer 21020
  01-19 14:07:34.027: I/ActivityManager(73): Starting: Intent { act=android.intent.action.SEND typ=plain/text flg=0x3000000 cmp=com.android.email/.activity.MessageCompose (has extras) } from pid 641
  01-19 14:07:35.269: I/ActivityManager(73): Displayed com.android.email/.activity.MessageCompose: +1s197ms (total +1s391ms)
  01-19 14:07:40.647: D/dalvikvm(252): GC_EXPLICIT freed 164K, 5% free 7462K/7815K, paused 4ms+3ms
  01-19 14:07:45.727: D/dalvikvm(269): GC_EXPLICIT freed 8K, 8% free 6305K/6791K, paused 13ms+5ms
  01-19 14:12:04.720: D/SntpClient(73): request time failed: java.net.SocketException: Address family not supported by protocol
  01-19 14:12:15.947: I/Email(293): ReconcilePopImapAccountsSync: start
  01-19 14:12:15.977: I/Email(293): ReconcilePopImapAccountsSync: done
  01-19 14:12:16.137: D/dalvikvm(293): GC_CONCURRENT freed 236K, 8% free 7787K/8391K, paused 4ms+7ms
  01-19 14:12:16.137: W/CursorWrapperInner(293): Cursor finalized without prior close()
  
  
  Line 315 in IOInterface.java is FileOutputStream f = new FileOutputStream(writeable);
  </code></pre>