¿Por qué recibo la excepción FileNotFoundException cuando presiono una URL para obtener contenido?

Tengo un método aquí, donde paso una URL, un nombre de usuario y una contraseña en mi método.

Aquí está mi método:

private void fetchURL (String urlString,String user,String pass) {  

try {
    URL url;
    URLConnection urlConn;
    DataOutputStream printout;
    DataInputStream input;

    Properties sysProperties = System.getProperties();

    sysProperties.put("proxyHost", "proxy.cyberway.com.sg");
    sysProperties.put("proxyPort", "8080");
    sysProperties.put("proxySet", "true");
    url = new URL (urlString);
    urlConn = url.openConnection();
    urlConn.setDoInput (true);

    urlConn.setDoOutput (true);

    urlConn.setUseCaches (false);

    urlConn.setRequestProperty ("Content-Type", "application/x-www-form-urlencoded");

    printout = new DataOutputStream (urlConn.getOutputStream ());

    String content = "USERNAME=" + URLEncoder.encode (user) + "&PASSWORD=" + URLEncoder.encode (pass);

    printout.writeBytes (content);
    printout.flush ();
    printout.close ();

    input = new DataInputStream (urlConn.getInputStream ());
    FileOutputStream fos=new FileOutputStream("D://outcome.txt");
    String str;
while (null != ((str = input.readLine())))
{

    if (str.length() >0)
    {
        fos.write(str.getBytes());
        fos.write(new String("\n").getBytes());
    }
}
    input.close ();
}
    catch(MalformedURLException mue){ System.out.println (mue);}
    catch(IOException ioe){ System.out.println (ioe);}
}

Lo que obtengo es esta excepción: java.io.FileNotFoundException: URL/Dirección

¿Por qué recibo este error? ¿Y cuál es el problema?

preguntado el 05 de febrero de 14 a las 07:02

por favor publique su seguimiento de pila -

2 Respuestas

Es D:\\ o D:/

No D:// porque :// es una secuencia utilizada para protocolos como http:// o file://

Respondido 05 Feb 14, 07:02

El error sigue ahí. java.io.FileNotFoundException - Muhammad Maqsoodur Rehman

Veo. ¿De qué línea dices que viene? - Xabster

Use la clase de archivo java en FileOutputStream como,

File file = new File("D:\\outcome.txt");
if (!file.isExists) {
  file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
String str;
while (null != ((str = input.readLine()))) {

    if (str.length() > 0) {
       fos.write(str.getBytes());
       fos.write(new String("\n").getBytes());
    }
}

La javadoc dice que FileOutputStream lanzará FileNotFoundException si el archivo no existe y la secuencia no puede crear un nuevo archivo.

Entonces, la mejor manera es usar el objeto File en FileOutputStream

Respondido 05 Feb 14, 09:02

Buena sugerencia. Pero el error sigue ahí. java.io.FileNotFoundException: URL/Dirección - Muhammad Maqsoodur Rehman

@MuhammadMaqsoodurRehman Edité mi respuesta al verificar la presencia del archivo y crear un nuevo archivo si el archivo no está presente. - AJJ

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.