java-从 url 中下载文件时的错误

问题描述

从 url 中下载文件时的错误

我想从url中读取一个文件,然后定义它为一个File Type

public File fileFromUrl(String str) throws IOException
      {
          File file = new File ("image.png");
          URL url = new URL (str);
            InputStream input = url.openConnection().getInputStream();
            try {

                OutputStream output = new FileOutputStream (file);
                try {
                    byte[] buffer = new byte[1024];
                    int bytesRead = 0;
                    while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
                        output.write(buffer, 0, bytesRead);
                    }
                } finally {
                    output.close();
                }
            } finally {
                input.close();
            }
          return file;
      }

但是代码在OutputStream output = new FileOutputStream (file); 处出错了。
请问如何定义 URl 中的文件?

解决方案

   /**
     * Constructs a new file using the specified path.
     *
     * @param path
     *            the path to be used for the file.
     */
    public File(String path) {
        this.path = fixSlashes(path);
    }

这是File的构造方法,你那是找不到文件的 path应该是绝对路径

解决方案二:

首先
File file = new File ("image.png");
OutputStream output = new FileOutputStream (file);
肯定会报错,因为这个图片不存在。
如果你想通过URL得到outputStream可以如下:
url.openConnection().getOutputStream();
因为URL就是URL和普通的File是不一样的,但都能取到流!

希望可以帮到你!

时间: 2024-10-26 21:12:26

java-从 url 中下载文件时的错误的相关文章

java 多线程-为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开

问题描述 为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开 为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开?? package com.miuitust.mutilethread; import java.io.File; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; impor

使用HttpURLConnection下载文件时出现 java.io.FileNotFoundException彻底解决办法

使用HttpURLConnection下载文件时经常会出现 java.io.FileNotFoundException文件找不到异常,下面介绍下解决办法 首先设置tomcat对get数据的编码:conf/server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncodin

java struts-struts2的xml配置下载文件时文件名乱码

问题描述 struts2的xml配置下载文件时文件名乱码 这里写上中文名乱码了,我可以咋解决呢?谢谢大家的指点! 解决方案 http://blog.csdn.net/csh624366188/article/details/6695702 解决方案二: 非常谢谢你给的链接,我这个问题都一天多了,我刚才看了那个链接,然后试着弄到我的项目中,完美的解决了问题,非常感谢! 解决方案三: 附上我的解决方法: public class DownFileAction { private String fil

Ajax请求过程中下载文件在FireFox(火狐)浏览器下的兼容问题_AJAX相关

需求很简单,点击一个文件链接下载该文件,同时向后台发送请求.需求很常见,用户点击下载后通常要进行下载量的统计,统计的话可以利用 script标签 或者 img标签(图片ping) 的跨域能力,将它们的 src 属性指向统计地址,但是这次用了 ajax 进行统计,遂出现了这个问题. demo 代码如下: <a id="a" href="http://c758482.r82.cf2.rackcdn.com/Sublime Text 2.0.2 x64 Setup.exe&q

java 下载 断点续传-用java语言从web下载文件到本地指定路径下

问题描述 用java语言从web下载文件到本地指定路径下 java语言实现从外部网站下载文件到我们公司的服务器上,支持断点续传并且用一个线程下载一个文件,请问哪位有什么思路或者源码参考.麻烦大家给我出出主意. 网上都是从服务器上下载到本地的案例.这种可以应用到我这种需求上吗? 顺便问下http协议和ftp协议下载文件是否支持下载到本地指定路径,对文件大小类型有没有限制. 解决方案 1.先用代码解析外部网站下载页面获取下载地址 2.代码实现http协议请求解析得到的下载地址,下载文件到本地 3.代

二进制-Android从FTP服务器下载文件时由传输模式引起的问题

问题描述 Android从FTP服务器下载文件时由传输模式引起的问题 从FTP服务器下载windows系统下编写的二进制文件,下载发现总是少几个字节,后来发现是因为windows系统下换行是0D0A两个字节,而在Unix系统下只有0A一个字节,百度到需要把ftp的传输模式设置为二进制格式,我也按照网上的方法设置了,但是下载文件的这个问题仍然存在,求好心的大神帮帮忙,谢谢! 解决方案 下载FTP服务器上文件java 代码之FTP服务器下载文件从FTP服务器下载文件 解决方案二: 额,这个问题我自己

service-从activity中下载文件的错误

问题描述 从activity中下载文件的错误 我使用http连接从web站点下载一个图像,如果下载是在服务器中执行就没有问题,如果我在一个activity中使用相同的方法下载文件就有下面的错误: 08-08 13:27:36.800: W/System.err(8010): android.os.NetworkOnMainThreadException 08-08 13:27:36.800: W/System.err(8010): at android.os.StrictMode$Android

c#-【求助】webclient下载文件时 报System.Net.WebException: 操作超时”

问题描述 [求助]webclient下载文件时 报System.Net.WebException: 操作超时" using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace SH600004Quickly { class Program { static void Main(string[] arg

python下载文件时显示下载进度的方法_python

本文实例讲述了python下载文件时显示下载进度的方法.分享给大家供大家参考.具体分析如下: 将这段代码放入你的脚本中,类似:urllib.urlretrieve(getFile, saveFile, reporthook=report) 第三个参数如下面的函数定义report,urlretrieve下载文件时会实时回调report函数,显示下载进度 def report(count, blockSize, totalSize): percent = int(count*blockSize*10