您的位置:首页 > 其它

IO流--粘贴复制

2015-12-15 22:47 204 查看
I O 流



ok,大家好!今天很开心分享一下我最近学习的IO流,只是层面很浅显,有错的地方请多多指教。

很显而易见,我设置了一个窗口,名字叫“大泽神器”,接下来他的功能就是要将一个文件成功并快速的复制 到任意的地方。

setTitle("大泽神器");

setSize(400, 160);

setLocationRelativeTo(null);

setResizable(false);

setDefaultCloseOperation(3);

setLayout(new FlowLayout(1, 0, 20));

JTextField copy_text = new JTextField(18);

JButton copy_button = new JButton("复制");

copy_button.setPreferredSize(new Dimension(60, 20));

JTextField paste_text = new JTextField(18);

JButton paste_button = new JButton("粘贴");

paste_button.setPreferredSize(new Dimension(60, 20));

add(copy_text);

add(copy_button);

add(paste_text);

add(paste_button);

setVisible(true);//可见

接下来就是对两个功能键进行了监听:

copy_button.addActionListener(new ActionListener() {//粘贴监听

public void actionPerformed(ActionEvent e) {

flag = true;}});

paste_button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {//复制监听

try { if (flag)

copy_paste(copy_text.getText(), paste_text.getText());

} catch (Exception e1) {

// TODO: handle exception

e1.printStackTrace();

}

flag = true;}});

好的,重点要来了!

我创建两个对象,分别为FileInputStream(输入流),FileOutputStream(输出流)。

经过多次验证,这种方法速度很快。。。。。。

private void copy_paste(String src_address, String pre_address) throws Exception {

// 构造文件输入流对象

FileInputStream fis = new FileInputStream(src_address);

// 构造文件输出流对象

FileOutputStream fos = new FileOutputStream(pre_address, true); // true是追加,,默认为false}

接下来我用到了数组,来读取文件的字节,并实行复制,向下面的我设置的就是每2048个有效字节来读取,正规的都是些1024的倍数,显得专业。哈哈;

byte[] by = new byte[2048];// 里面写的1024的倍数

可能会有人疑问到,是不是里面写的字节数越大读取的熟读就会越快啊,这是误区,这个要根据你的文件大小来确定,不信你可以试试哦。(下面的不建议写的)

// byte[] by = new byte[fis.available()];// fis.available读有效字节数

// 开始读写操作

int i = fis.read(by);

// 循环读写

while (i != -1) {

fos.write(by, 0, i);

i = fis.read(by);

}

读写完记得关闭:

// 关闭流

fis.close();

fos.close();

主函数成功调用:

public static void main(String[] args) {

// System.out.println(new Date());

new FileRWTest().UI();}

也可以实现计时,来看看你的程序工作效率。在读取前设置一个时间,读取后在设置个时间。然后来个差值就ok了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: