黑马程序员技术交流社区
标题:
利用图形界面写了一个文件复制,有一些问题请教一下
[打印本页]
作者:
g552092947
时间:
2015-6-19 21:01
标题:
利用图形界面写了一个文件复制,有一些问题请教一下
package com.itheima;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class FileIO extends JFrame implements ActionListener{
/**
* 运行程序
* 弹出对话框 含有复制按钮复制文件
* 对应两个功能CopyFile,SaveFile
* @param args
*/
//定义复制按钮
private JButton copy=new JButton("复制文件");
//定义文件输入输出流
private FileReader frFileReader=null;
private FileWriter fwFileWriter=null;
//定义文件选择器
private JFileChooser fChooser=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
new FileIO();
}
public FileIO()
{
Initial();
}
//页面初始化
private void Initial() {
// TODO Auto-generated method stub
JFrame frame=new JFrame();
frame.setTitle("文件操作");
frame.setBounds(500,390,200,100);
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(copy);
copy.addActionListener(this);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==copy)
CopyFile();
}
//文件保存
private String SaveFile() {
// TODO Auto-generated method stub
fChooser=new JFileChooser();
int flag=fChooser.showSaveDialog(this);
if(flag==JFileChooser.APPROVE_OPTION)
{
return fChooser.getCurrentDirectory().getPath()+"\\";
}
return null;
}
private void CopyFile() {
// TODO Auto-generated method stub
fChooser=new JFileChooser();
fChooser.showDialog(new JLabel(), "选择");
File file=fChooser.getSelectedFile();
String fileName=file.getName();
String newFile=SaveFile()+fileName;
File fileSave=new File(newFile);
if(file.isFile())
{
try {
frFileReader=new FileReader(file);
fwFileWriter=new FileWriter(fileSave);
char[] buf=new char[1024];
int leng=0;
while((leng=frFileReader.read(buf))!=-1)
{
fwFileWriter.write(buf, 0, leng);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if(frFileReader!=null)
try{
frFileReader.close();
}
catch (Exception e2) {
// TODO: handle exception
}
if(fwFileWriter!=null)
try{
fwFileWriter.close();
}
catch (Exception e2) {
// TODO: handle exception
}
}
System.out.println("文件:"+file.getAbsolutePath());
System.out.println("文件:"+newFile);
}
}
}
复制代码
这段程序能够实现文件的复制,但是当选择文件保存路径的时候,如果存的是根目录的话那么System.out.println("文件:"+newFile);输出的是(根目录:\\文件名)(文件:E:\\360wangpan_setup_6.5.2.1160.exe);不是根目录的话输出的是(目录\文件名)(C:\Users\Administrator\Desktop\360wangpan_setup_6.5.2.1160.exe),想请一下大神同一段程序,都能实现文件的复制,那么 "\\"与"\"在windows中有什么不同吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2