黑马程序员技术交流社区

标题: 利用图形界面写了一个文件复制,有一些问题请教一下 [打印本页]

作者: g552092947    时间: 2015-6-19 21:01
标题: 利用图形界面写了一个文件复制,有一些问题请教一下

  1. package com.itheima;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.io.*;
  5. import javax.swing.*;
  6. public class FileIO extends JFrame implements ActionListener{
  7.         /**
  8.          * 运行程序
  9.          * 弹出对话框  含有复制按钮复制文件
  10.          * 对应两个功能CopyFile,SaveFile
  11.          * @param args
  12.          */
  13.         //定义复制按钮
  14.         private JButton copy=new JButton("复制文件");       
  15.         //定义文件输入输出流
  16.         private FileReader frFileReader=null;
  17.         private FileWriter fwFileWriter=null;
  18.         //定义文件选择器
  19.         private JFileChooser fChooser=null;
  20.        
  21.         public static void main(String[] args) {
  22.                 // TODO Auto-generated method stub
  23.                 new FileIO();
  24.         }
  25.        
  26.         public FileIO()
  27.         {
  28.                 Initial();
  29.         }
  30.         //页面初始化
  31.         private void Initial() {
  32.                 // TODO Auto-generated method stub
  33.                 JFrame frame=new JFrame();
  34.                 frame.setTitle("文件操作");
  35.                 frame.setBounds(500,390,200,100);
  36.                 frame.setLayout(new FlowLayout());
  37.                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  38.                 frame.add(copy);
  39.                 copy.addActionListener(this);
  40.                 frame.setVisible(true);
  41.         }
  42.         public void actionPerformed(ActionEvent e)
  43.         {
  44.                 if(e.getSource()==copy)
  45.                         CopyFile();
  46.         }
  47.         //文件保存
  48.         private String SaveFile() {
  49.                 // TODO Auto-generated method stub
  50.                 fChooser=new JFileChooser();
  51.                 int flag=fChooser.showSaveDialog(this);
  52.                 if(flag==JFileChooser.APPROVE_OPTION)
  53.                 {
  54.                         return fChooser.getCurrentDirectory().getPath()+"\\";
  55.                 }
  56.                 return null;               
  57.         }
  58.         private void CopyFile() {
  59.                 // TODO Auto-generated method stub
  60.                 fChooser=new JFileChooser();
  61.                 fChooser.showDialog(new JLabel(), "选择");  
  62.         File file=fChooser.getSelectedFile();
  63.         String fileName=file.getName();
  64.         String newFile=SaveFile()+fileName;
  65.         File fileSave=new File(newFile);      
  66.         if(file.isFile())
  67.         {
  68.                 try {
  69.                                 frFileReader=new FileReader(file);
  70.                                 fwFileWriter=new FileWriter(fileSave);
  71.                                 char[] buf=new char[1024];
  72.                                 int leng=0;
  73.                                 while((leng=frFileReader.read(buf))!=-1)
  74.                                 {
  75.                                         fwFileWriter.write(buf, 0, leng);
  76.                                 }
  77.                         } catch (FileNotFoundException e) {
  78.                                 // TODO Auto-generated catch block
  79.                                 e.printStackTrace();
  80.                         } catch (IOException e) {
  81.                                 // TODO Auto-generated catch block
  82.                                 e.printStackTrace();
  83.                         }
  84.                 finally{
  85.                         if(frFileReader!=null)
  86.                                     try{
  87.                                             frFileReader.close();                                           
  88.                                     }
  89.                                     catch (Exception e2) {
  90.                                             // TODO: handle exception
  91.                                     }
  92.                             if(fwFileWriter!=null)
  93.                                     try{
  94.                                             fwFileWriter.close();                                           
  95.                                     }
  96.                                     catch (Exception e2) {
  97.                                             // TODO: handle exception
  98.                                     }                                   
  99.                 }
  100.                 System.out.println("文件:"+file.getAbsolutePath());
  101.                 System.out.println("文件:"+newFile);
  102.         }               
  103.         }
  104. }
复制代码

这段程序能够实现文件的复制,但是当选择文件保存路径的时候,如果存的是根目录的话那么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