java下载url文件
Ⅰ java中URL下载文件的问题。程序有问题,下载的mp3文件比原来的大,请问问题出在哪里
is.read()的返回实际从网上读取的字节数,而你是只按2KB写入,导致多写
整个while改成
intc;
while((c=is.read(bfr))!=-1){
fos.write(bfr,0,c);
}
Ⅱ java下载服务器上的文件到客户端
java编程方法下载服务器上的文件到本地客服端,代码如下:
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.URL;
importjava.net.URLConnection;
publicclassDownLoad{
publicstaticvoiddownloadFile(URLtheURL,StringfilePath)throwsIOException{
FiledirFile=newFile(filePath);
if(!dirFile.exists()){
//文件路径不存在时,自动创建目录
dirFile.mkdir();
}
//从服务器上获取图片并保存
URLConnectionconnection=theURL.openConnection();
InputStreamin=connection.getInputStream();
FileOutputStreamos=newFileOutputStream(filePath+"\123.png");
byte[]buffer=newbyte[4*1024];
intread;
while((read=in.read(buffer))>0){
os.write(buffer,0,read);
}
os.close();
in.close();
}
publicstaticvoidmain(String[]args){
//下面添加服务器的IP地址和端口,以及要下载的文件路径
StringurlPath="http://服务器IP地址:端口/image/123.png";
//下面代码是下载到本地的位置
StringfilePath="d:\excel";
URLurl=newURL(urlPath);
try{
downloadFile(url,filePath);
}catch(IOExceptione){
e.printStackTrace();
}
}
}
Ⅲ 使用java编写一个多线程下载器,需要在URL栏中输入网址,然后通过网址下载。该怎么实现,求源代码
swing做前台界面。后台使用java.net中的HTTPConnection下载就OK。下载可以用getInputStream()获取数据,然后写入文件。只提供思路,无代码。不搞java好多年……
Ⅳ 设计一个JAVA程序,下载由URL指定的网页的源代码,找出其中所有的超链接。
importjava.awt.BorderLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.net.HttpURLConnection;
importjava.net.MalformedURLException;
importjava.net.URL;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
{
privateJTextFielrlInput;
privateJTextAreaviewArea;
publicstaticvoidmain(String[]args){
newHttpViewer();
}
publicHttpViewer(){
this.setTitle("HttpViewer");
this.setSize(800,600);
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
initPanel();
initAction();
this.setVisible(true);
}
//这个方法用来设置窗口布局
privatevoidinitPanel(){
JPanelnorthPanel=newJPanel();
JLabelurlInputLabel=newJLabel("URL:");
urlInput=newJTextField(60);
northPanel.add(urlInputLabel);
northPanel.add(urlInput);
this.add(northPanel,BorderLayout.NORTH);
JPanelcenterPanel=newJPanel();
viewArea=newJTextArea(27,60);
centerPanel.add(newJScrollPane(viewArea));
this.add(centerPanel);
}
//这个方法用来设置事件
privatevoidinitAction(){
urlInput.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringtext=urlInput.getText();
if(text==null||text.length()==0){
viewArea.setText("您没有输入URL");
return;
}
try{
URLurl=newURL(text);
Stringcontext=getContent(url);
if(context!=null){
searchFromText(context);
}
}catch(MalformedURLExceptione1){
viewArea.setText("您输入的URL不合法:"+text);
}
}
});
}
privateStringgetContent(URLurl){
StringBufferbuilder=newStringBuffer();
intresponseCode=-1;
HttpURLConnectioncon=null;
try{
con=(HttpURLConnection)url.openConnection();
con.setRequestProperty("User-Agent",
"Mozilla/4.0(compatible;MSIE5.0;WindowsNT;DigExt)");//IE代理进行下载
con.setConnectTimeout(60000);
con.setReadTimeout(60000);
//获得网页返回信息码
responseCode=con.getResponseCode();
if(responseCode==-1){
viewArea.setText("连接失败:"+url.toString());
returnnull;
}
if(responseCode>=400){
viewArea.setText("请求失败,错误码:"+responseCode);
returnnull;
}
InputStreamis=con.getInputStream();
InputStreamReaderisr=newInputStreamReader(is);
BufferedReaderbr=newBufferedReader(isr);
Stringstr=null;
while((str=br.readLine())!=null)
builder.append(str);
is.close();
}catch(IOExceptione){
e.printStackTrace();
viewArea.setText("IOException:"+url.toString());
}finally{
con.disconnect();
}
returnbuilder.toString();
}
privatevoidsearchFromText(Stringcontext){
viewArea.setText("查找URL中: ");
Patternpattern=Pattern.compile("<a([^>]+)*>(.*?)</a>");
Matchermatcher=pattern.matcher(context);
while(matcher.find()){
for(Stringprop:matcher.group(1).split("")){
intindexOf=prop.indexOf('=');
if(indexOf>0){
if(prop.substring(0,indexOf).equals("href")){
Stringurl2=prop.substring(indexOf+2,prop.length()-1);
viewArea.append(url2+" ");
}
}
}
}
}
}
Ⅳ Java 利用url下载MP3保存到本地
//mp3Url MP3的URL
InputStream in=new URL(mp3Url).openConnection().getInputStream(); //创建连接、输入流
FileOutputStream f = nre FileOutputStream("c:\mmm.mp3");//创建文件输出流
byte [] bb=new byte[1024]; //接收缓存
int len;
while( (len=in.read(bb))>0){ //接收
f.write(bb, 0, len); //写入文件
}
f.close();
in.close();
基本框架,自己调试修改一下
Ⅵ 我用java做了一个通过url地址下载指定文件的功能,文件名可能包含中文,IE正常,火狐失败.
您好!很高兴为您答疑!
火狐下您可以安装Firebug检查页面代码,它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。