无法从java中的internet url下载文件

无法从java中的internet url下载文件,java,download,Java,Download,我想从internet url下载csv文件。 我已经尝试了我能在网上找到的所有代码,但无法下载 URL google = new URL("myurl"); ReadableByteChannel rbc = Channels.newChannel(google.openStream()); FileOutputStream fos = new FileOutputStream("C://excelsheet.csv");

我想从internet url下载csv文件。 我已经尝试了我能在网上找到的所有代码,但无法下载

           URL google = new URL("myurl");
           ReadableByteChannel rbc = Channels.newChannel(google.openStream());
           FileOutputStream fos = new FileOutputStream("C://excelsheet.csv");
           fos.getChannel().transferFrom(rbc, 0, 1 << 24);
我在我的url上尝试了一个简单的输入流,但也不起作用

           URL oracle = new URL("myurl");
           URLConnection yc = oracle.openConnection();

      BufferedReader br = new BufferedReader(new InputStreamReader(
                                          yc.getInputStream()));
现在,如果我键入任何其他url,则bufferedreader将获取数据,而不是myurl。 如果我在浏览器中输入myurl,我会弹出一个窗口来保存或下载csv文件。 所以问题不在于不正确的myurl

myurl上运行的Servlet/代码是否可能检查请求是否来自浏览器,然后才发送数据

谢谢大家。使用了httpclient,它对我很有用。下面是下载csv文件、在本地保存、读取并解析所有令牌的代码

        HttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet("your url to download");
        HttpResponse response = httpclient.execute(httpget);

           System.out.println(response.getProtocolVersion());
           System.out.println(response.getStatusLine().getStatusCode());
           System.out.println(response.getStatusLine().getReasonPhrase());
           System.out.println(response.getStatusLine().toString());
            HttpEntity entity =    response.getEntity();
           if (entity != null) {
               FileOutputStream fos = new java.io.FileOutputStream("C://excelsheet.csv");
               entity.writeTo(fos);
               fos.close();
           }

           //create BufferedReader to read csv file
      BufferedReader br = new BufferedReader( new FileReader("C://excelsheet.csv"));
      String strLine = "";
      StringTokenizer st = null;
       int lineNumber = 0, tokenNumber = 0;
      while( (strLine = br.readLine()) != null)
                              {
                                      lineNumber++;

                                      //break comma separated line using ","
                                      st = new StringTokenizer(strLine, ",");

                                      while(st.hasMoreTokens())
                                      {
                                              //display csv values
                                              tokenNumber++;
                                              System.out.println("Line # " + lineNumber +
                                                              ", Token # " + tokenNumber
                                                              + ", Token : "+ st.nextToken());
                                      }

                                      //reset token number
                                      tokenNumber = 0;

                              } 
       }
       catch (Exception e) {
           System.out.println("insdie the catch part");
           System.out.println(e.toString());
       }
你试过lib吗?
不久前,我用它从网站上自动下载了一组考试。

如果您没有登录到网站,您可以使用浏览器访问该文件吗?哪些频道不起作用,您会遇到异常吗?您可能没有对C驱动器根目录的写入权限。当您运行代码时,您会收到什么错误消息?令人惊讶的是,我没有收到任何错误消息,或者代码没有进入异常块。我在控制台得到了这个消息,我想这是正常的完成。进程退出,退出代码为0。元建议:用1的解释替换问题中出现的每一次不起作用。它正在做什么和2。是的,使用浏览器我可以访问该文件,无需任何登录,虽然这需要一些时间是的,但当它工作时,很好。我下载考试的应用程序是:。不高兴的是,我丢失了源代码,但它仍然有效;但这并不奏效too@user1256070还有HttpClient,你测试过吗?@user1256070你能把这个答案标记为解决你问题的答案吗?
        HttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet("your url to download");
        HttpResponse response = httpclient.execute(httpget);

           System.out.println(response.getProtocolVersion());
           System.out.println(response.getStatusLine().getStatusCode());
           System.out.println(response.getStatusLine().getReasonPhrase());
           System.out.println(response.getStatusLine().toString());
            HttpEntity entity =    response.getEntity();
           if (entity != null) {
               FileOutputStream fos = new java.io.FileOutputStream("C://excelsheet.csv");
               entity.writeTo(fos);
               fos.close();
           }

           //create BufferedReader to read csv file
      BufferedReader br = new BufferedReader( new FileReader("C://excelsheet.csv"));
      String strLine = "";
      StringTokenizer st = null;
       int lineNumber = 0, tokenNumber = 0;
      while( (strLine = br.readLine()) != null)
                              {
                                      lineNumber++;

                                      //break comma separated line using ","
                                      st = new StringTokenizer(strLine, ",");

                                      while(st.hasMoreTokens())
                                      {
                                              //display csv values
                                              tokenNumber++;
                                              System.out.println("Line # " + lineNumber +
                                                              ", Token # " + tokenNumber
                                                              + ", Token : "+ st.nextToken());
                                      }

                                      //reset token number
                                      tokenNumber = 0;

                              } 
       }
       catch (Exception e) {
           System.out.println("insdie the catch part");
           System.out.println(e.toString());
       }