我有一个url,想把它转换成file类型的文件。
现在我通过url.openstream()来获得inputstream类型的数据,然后把inputstream写入磁盘然后返回file文件,代码如下:URL url=new URL("http://www.fjdjh.com/sqx/sqx1.xls");
File excel=file_put_contents("D:\\1.xls",url.openStream());
public static File file_put_contents(String savePath,InputStream is){
File file=new File(savePath);
OutputStream os=null;
try{
os=new FileOutputStream(file);
byte buffer[]=new byte[4*1024];
int len=0;
while((len=is.read(buffer))!=-1){
os.write(buffer,0,len);
}
os.flush();
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
os.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return file;
}
请问我不想再磁盘上新增文件,要怎么改写这个代码?

解决方案 »

  1.   

    不想生成在磁盘上那楼主是想生成到内存中?
    如果是的话直接用ByteArrayOutputStream字节数组流放在内存中
      

  2.   


    我是想这个过程在内存中进行,如果是用ByteArrayOutputStream,放在内存里的还是数据流。
    我现在的问题是没法把inputstream(或者是URL)直接转换成File,不得已我用了writer往磁盘上面写了一下,然后才能获得磁盘上的File对象
      

  3.   

    网络上的文件你没down下来是不可能直接映射访问的