2014-02-05 28 views
0

我在這裏有方法,我在我的方法中傳遞一個url,用戶名和密碼。爲什麼當點擊一個URL來獲取內容時會出現FileNotFoundException?

這裏是我的方法:

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);} 
} 

我所得到的是此異常:java.io.FileNotFoundException:URL /地址

爲什麼會出現這個錯誤?問題是什麼?

+0

請發表您的堆棧跟蹤 –

回答

0

它要麼d:\\或d:/

未d://因爲://是用於協議,如HTTP的序列://或file://

+0

有錯誤仍然存​​在。 java.io.FileNotFoundException –

+0

我明白了。你說哪一行是從哪裏來的? – Xabster

0

使用Java文件類的FileOutputStream中的,

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()); 
    } 
} 

javadoc說,如果文件不列入存在FileOutputStream中會拋出FileNotFoundException異常和流不能創建新的文件。

所以,更好的辦法是使用文件對象FileOutputStream中

+0

好的建議。但錯誤仍然存​​在。 java.io.FileNotFoundException:URL/Address –

+0

@MuhammadMaqsoodurRehman我通過檢查文件的存在編輯我的答案,並創建一個新的文件,如果文件不存在。 – AJJ

相關問題