使用JavaIO提供的API下载指定文件(image)

1 篇文章 0 订阅
</pre><pre name="code" class="java">
使用JavaIO提供的API下载指定文件(image)

package com.net.download;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;


/**
 * ClassName:Test.java
 * @author xg.qiu
 * @since JDK1.7
 * Aug 26, 2015
 * 使用JavaIO提供的API下载指定文件(image)
 */
public class DownLoad {
	
	public static void main(String[] args) {
		// 调用封装好的方法
		download("http://static.oschina.net/uploads/user/500/1000631_50.jpg", "E:/download.jpg");
	}
	
	/**
	 * 封装了用户传参的方法
	 * @author xg.qiu<br/>
	 * @since  JDK 1.7
	 * @time   Aug 31, 2015
	 * @param imgUrl 网络上的图片路径地址
	 * @param newImg 保存在本机上的图片路径地址
	 */
	public static void download(String imgUrl,String newImg){
		try {
			//1.创建一个URL
			URL url = new URL(imgUrl);
			//2.使用数据输入流获取URL信息
			DataInputStream data = new DataInputStream(url.openStream());
			int dataLength = data.available();
			//3.创建一个文件输出流,将网络流输出到文件流
			File newFile = new File(newImg);
			FileOutputStream output = new FileOutputStream(newFile);
			byte [] buffer = new byte[1024];
			int len;
			// 4.循环读取并写入文件流
			while((len = data.read(buffer)) != -1 ){
				output.write(buffer,0,len);
			}
			//关闭网络流
			data.close();
			//关闭文件流
			output.close();
			if(newFile.length() == dataLength){
				System.out.println("文件下载成功.");
			}else{
				System.out.println("文件下载失败.");
			}
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java Swing中的Drag and Drop API来实现拖拽图片并放置到指定位置的功能。以下是一个简单的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.datatransfer.*; import java.awt.event.*; import java.io.IOException; public class DragAndDropExample extends JFrame { private JLabel imageLabel; public DragAndDropExample() { super("Drag and Drop Example"); // 创建一个标签用于显示图片 imageLabel = new JLabel(); imageLabel.setTransferHandler(new ImageTransferHandler()); add(imageLabel, BorderLayout.CENTER); // 添加一个按钮用于加载图片 JButton loadButton = new JButton("Load Image"); loadButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser fileChooser = new JFileChooser(); int result = fileChooser.showOpenDialog(DragAndDropExample.this); if (result == JFileChooser.APPROVE_OPTION) { try { // 加载选中的图片 Image image = Toolkit.getDefaultToolkit().getImage(fileChooser.getSelectedFile().toURI().toURL()); imageLabel.setIcon(new ImageIcon(image)); } catch (IOException ex) { ex.printStackTrace(); } } } }); add(loadButton, BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 400); setVisible(true); } // 实现TransferHandler接口用于处理拖拽操作 private class ImageTransferHandler extends TransferHandler { public boolean canImport(TransferHandler.TransferSupport support) { // 只接受图片类型的数据 return support.isDataFlavorSupported(DataFlavor.imageFlavor); } public boolean importData(TransferHandler.TransferSupport support) { if (!canImport(support)) { return false; } // 获取拖拽的图片数据 Transferable transferable = support.getTransferable(); Image image; try { image = (Image) transferable.getTransferData(DataFlavor.imageFlavor); } catch (UnsupportedFlavorException | IOException e) { return false; } // 将图片显示在标签上 imageLabel.setIcon(new ImageIcon(image)); return true; } public int getSourceActions(JComponent c) { // 设置拖拽操作为复制 return TransferHandler.COPY; } protected Transferable createTransferable(JComponent c) { // 创建一个包含图片数据的Transferable对象 return new Transferable() { public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[]{DataFlavor.imageFlavor}; } public boolean isDataFlavorSupported(DataFlavor flavor) { return flavor.equals(DataFlavor.imageFlavor); } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { if (flavor.equals(DataFlavor.imageFlavor)) { return imageLabel.getIcon().getImage(); } else { throw new UnsupportedFlavorException(flavor); } } }; } } public static void main(String[] args) { new DragAndDropExample(); } } ``` 这个示例程序中,我们创建了一个JFrame窗口,其中包含一个用于显示图片的JLabel和一个用于加载图片的JButton。当用户拖拽图片到JLabel上时,程序会自动将图片显示在JLabel上。当用户点击加载图片按钮时,程序会弹出一个文件选择对话框,用户可以选择一张图片进行加载。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值