Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从url保存图像或文件_Java_Url_Save - Fatal编程技术网

Java 从url保存图像或文件

Java 从url保存图像或文件,java,url,save,Java,Url,Save,我希望用java将一个图像从给定的url保存到磁盘上指定的位置,并使用指定的文件名。我被告知转换成字节数组,然后保存。作为一名java新手,我现在对这一点感到完全不知所措 我想首先打开一个到url的连接: `String img_url = "some img url"; URL url = new URL(img_url); URLConnection url_c = url.openConnection();` 我该怎么办 编辑: 我发现这个实现应该保存内容,而不考虑类型。因此,如果url

我希望用java将一个图像从给定的url保存到磁盘上指定的位置,并使用指定的文件名。我被告知转换成字节数组,然后保存。作为一名java新手,我现在对这一点感到完全不知所措

我想首先打开一个到url的连接:

`String img_url = "some img url";
URL url = new URL(img_url);
URLConnection url_c = url.openConnection();`
我该怎么办

编辑:
我发现这个实现应该保存内容,而不考虑类型。因此,如果url指向的是图像,则应该保存,或者如果url指向的是.doc或.pdf,则应该保存。

这可能适用于您URLConnection connection=url.openConnection();connection.connect();getHeaderField(“内容处置”)您可以使用它来获取标题信息。模式pc=Pattern.compile(“=([^;]*)”//每一个内容都由以下内容分隔:;delimeter Matcher Matcher=pc.Matcher(connection.getHeaderField(“内容配置”));if(matcher.find()){fileName=matcher.group(1);//获取文件名。假设url以fileName.type结尾}
File direct = new File(Environment.getExternalStorageDirectory() + "/urfoldername/");
if(!direct.exists())
               {
                   direct.mkdir(); //directory is created;

               }
 file = new File("/sdcard/urfoldername/"+fileName);
 InputStream input = new BufferedInputStream(url.openStream());
 OutputStream output = new FileOutputStream(file);
 byte data[] = new byte[1024];
         while ((count = input.read(data)) != -1) 
                       {
               total += count;
               output.write(data, 0, count); 
               }
                 output.flush();
                 output.close();
                 input.close();