java 写一个action 能实现点击事件后浏览器能自动下载xml文件的功能!!急
发布网友
发布时间:2022-05-07 04:11
我来回答
共2个回答
热心网友
时间:2023-10-15 03:55
方法一:调用浏览器下载文件
下面Action里的代码可以用调用浏览器进行下载xml文件
import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URI;
import javax.swing.JButton;
import javax.swing.JFrame;
public class DownLoadDemo extends JFrame {
JButton jb;
public DownLoadDemo() {
jb = new JButton("Download");
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String path = "网络xml的地址";
URI uri = new URI(path);
Desktop.getDesktop().browse(uri);
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
add(jb);
setTitle("调用浏览器下载");
setBounds(380, 380,230,80);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new DownLoadDemo();
}
}
当时上述下载方式,可能会弹出提示,比如保存位置等.
方法二:使用IO和net下载文件.这种方式没有调用浏览器,下载过程,不会弹出提示灯
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
public class DownLoadDemo {
public static void main(String[] args) throws Exception {
String str = "XML的网络地址";
URL url = new URL(str);
URLConnection urlconn = url.openConnection();
urlconn.connect();
InputStream is = urlconn.getInputStream();
FileOutputStream fos = new FileOutputStream("qq.exe");
byte[] buf = new byte[4096];
int length = 0;
//System.out.println("开始下载时间:"+new Date());
while((length=is.read(buf))!=-1){
fos.write(buf, 0, length);
}
fos.close();
is.close();
//System.out.println("下载完成时间:"+new Date());
}
}
热心网友
时间:2023-10-15 03:55
把 .xml 给输出流 。。。。。。。。。。追问具体怎么写 能给个例子么