`
费文—jmiss
  • 浏览: 34923 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

文件复制程序

 
阅读更多

基于对文件输入输出流的一些简单应用,编写了一个文件复制程序(提醒:单核CPU慎用,占用CPU太多) 以下是源代码:

 

1.界面

 

package file.iostream;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

/**
 * 文件的复制登陆界面
 * 
 * @author lenovo
 * 
 */
public class FileCopyUI extends JFrame{

	public static void main(String args[]) {

		// 创建FileCopy对象
		FileCopyUI fc = new FileCopyUI();

		fc.showUI();

	}

	
	/**
	 * 初始化窗口
	 */
	public void showUI(){
		
		//设置标题
		this.setTitle("文件复制器  v1.0");
		//设置窗体大小
		this.setSize(400,250);
		
		//创建流式布局器
		java.awt.FlowLayout fl=new java.awt.FlowLayout();
		this.setLayout(fl);
		
		//创建一个面板对象
		JPanel jp=new JPanel();
		//创建一个尺寸对象
		java.awt.Dimension di=new java.awt.Dimension(392,96);
		//设置面板的大小
		jp.setPreferredSize(di);
		//创建并给面板加上流式布局器
		java.awt.FlowLayout fl1=new java.awt.FlowLayout();
		jp.setLayout(fl1);
		
		//创建两个标签,创建两个文本框,一个按钮
		JLabel jl1=new JLabel("         源文件路径:");
		final JTextField jt1=new JTextField(20);
		
		JLabel jl2=new JLabel("复制后文件路径:");
		final JTextField jt2=new JTextField(20);
		
		JButton jb=new JButton("开始复制");
		
		//将标签,文本行,按钮加到面板上去
		jp.add(jl1);
		jp.add(jt1);
		jp.add(jl2);
		jp.add(jt2);
		jp.add(jb);
		
		//把面板加到窗体
		this.add(jp);
		
		
		//创建一个多行文本框
		final JTextArea jta=new JTextArea(5,30);
		// 创建一个滚动条
		JScrollPane jsp = new JScrollPane(jta);
		this.add(jta);
		this.add(jsp);
		
		
		//窗体大小不可改变
		this.setResizable(false);
		//关闭时退出
		this.setDefaultCloseOperation(3);
		//将窗体显示出来
		this.setVisible(true);
		
		
		//给开始复制按钮安装动作监听器
		jb.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent e) {
				
				String start="正在复制……";
				//将start写入多行文本框中
				jta.append(start);
				
				//得到源文件路径
				String str1=jt1.getText();
				//得到复制后文件路径
				String str2=jt2.getText();
				
				//创建一个FileCopy对象
				FileCopy fc=new FileCopy();
				//调用复制函数
				fc.copyflie(str1, str2);
				
				String end="复制成功!!!";
				//将start写入多行文本框中
				jta.append("\n"+end);
				
			}
		});
		
	}
	
}
 

 

 

2.文件复制方法

 

package file.iostream;

/**
 * 文件复制方法类
 * 
 * @author lenovo
 * 
 */

public class FileCopy {

	/**
	 * 文件复制的方法
	 * 
	 * @param srcpath
	 *            :原来的文件文件路径
	 * @param copypath
	 *            :复制后的文件路径
	 * @return:是否复制成功
	 */
	public void copyflie(String srcpath, String copypath) {

		try {
			// 根据给定的路径创建输入流对象
			java.io.FileInputStream is = new java.io.FileInputStream(srcpath);

			// 创建一个输出流对象
			java.io.FileOutputStream os = new java.io.FileOutputStream(copypath);

			// 读取流的字节
			int s = is.read();

			// 读取字节知道读取完,并将读取的字节装入队列
			while (s != -1) {

				// 将读取的字节强制转化为字节类型
				byte b = (byte) (s);
				// 取出字节
				os.write(b);

				// 读取字节
				s = is.read();

			}

			// 强制输出
			os.flush();
			// 关闭流
			is.close();
			os.close();

		} catch (Exception ef) {
			ef.printStackTrace();
		}
	
	}

}

 

 

以下是界面效果:

 
  • 大小: 13.4 KB
分享到:
评论
1 楼 北堂泠川 2012-07-27  
根本不能复制。。。。。。。。。。。。。。。。。。。。

相关推荐

Global site tag (gtag.js) - Google Analytics