简单的java类下载文件

时间:2012-04-11 11:04:29

标签: java download runtime-error urlconnection

我正在尝试使用以下代码使用简单的java类下载文件:

public class Download {  

     public static void main(String[] args) throws Exception {  

        Download d = new Download();  
        d.URLSetUp("http://www.sheldonbrown.com/web_sample1.html");  
     }  

    public String URLSetUp(String urlProp) throws Exception {  

        StringBuffer tempData = new StringBuffer();  
        String contentXML = "";  
        String line = "";  
        URL url1;  
         try {  
            url1 = new URL(urlProp);  

            URLConnection conn = url1.openConnection();  

            conn.setDoOutput(true);  
             OutputStreamWriter wr = new OutputStreamWriter(conn
                .getOutputStream());  

             BufferedReader rd = new BufferedReader(new InputStreamReader(conn
                .getInputStream()));  
              while ((line = rd.readLine()) != null) {  
                 tempData.append(line);  
             }  
             contentXML = tempData.toString();  

            wr.close();  
            rd.close();  

         } catch (MalformedURLException e) {  

             e.printStackTrace();  
         } catch (IOException e) {  

             e.printStackTrace();  
        }  
         if (contentXML != null) {  
             return contentXML;  
        } else {  

             System.out.println("Error");  
         }  
         return null;  

     }  
}  

它给了我以下错误:

#  
# An unexpected error has been detected by Java Runtime Environment:  
#  
#  Internal Error (434C41535326494C453041525345520E4350500B65), pid=5156, tid=4296  
#  
# Java VM: Java HotSpot(TM) Client VM (1.6.0_03-b05 mixed mode)  
# An error report file with more information is saved as hs_err_pid5156.log  
#  
# If you would like to submit a bug report, please visit:  
#   http://java.sun.com/webapps/bugreport/crash.jsp  
#

如果你有任何人有任何想法,请告诉我。

感谢
斯纳

2 个答案:

答案 0 :(得分:2)

正如您可能已经确定的那样,这是您的虚拟机崩溃。在Java中你通常做的任何事都不应该触发这个,因此我首先要升级你的JVM。 1.6.0_ 03 已经很老了。

This page详细介绍了Java 7下载以及早期的Java 6 JDK。正如你所看到的那样,他们的版本是31版,因此你已经过时了。

如果您想进一步调试,请记下上面的错误报告文件并查看this SO answer

答案 1 :(得分:1)

源文件是正确的,我尝试它并且它可以工作。

只有一个错误,但与您的问题无关。您正在使用readLine()方法。当您获得该行并将其追加到tempData时,您将丢失行终止字符,因此请记住解决此问题,或者更改文件。