CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

帮忙找一下错!! 谢谢(1天结帖)

楼主humous99(前夕的泪)2006-03-03 21:19:37 在 Java / J2SE / 基础类 提问

import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   java.io.*;  
  class   copy  
  {  
  JFrame   f;  
  JPanel   p;  
  JPanel   p1;  
  JPanel   p2;  
  JPanel   p3;JLabel   jl=new   JLabel("         ");  
  JLabel   jl1=new   JLabel("");  
  JLabel   jl2=new   JLabel("");  
  JLabel   jl3=new   JLabel("");  
  JLabel   jl4=new   JLabel("");  
   
  JFileChooser   fc1=new   JFileChooser("请选择输出路径");  
  JTextField   t=new   JTextField("                                                                               ");  
  JTextField   t1=new   JTextField("                                                                               ");  
  JButton   b1=new   JButton("确定");  
  JButton   b2=new   JButton("取消");  
  JButton   b3=new   JButton("退出");  
  JButton   b4=new   JButton("选择");  
  JButton   b5=new   JButton("保存");  
   
   
   
   
   
  copy()  
  {  
   
  f=new   JFrame();  
  f.setTitle("复制程序");  
  BorderLayout   bl=new   BorderLayout();  
  f.getContentPane().setLayout(bl);  
  f.setSize(400,300);  
  f.setLocation(300,300);  
  p=new   JPanel(new   GridLayout(3,1,10,10));  
   
  f.getContentPane().add("Center",p);  
  p1=new   JPanel();p1.setLayout(new   FlowLayout());  
  p2=new   JPanel();p2.setLayout(new   FlowLayout());  
  p3=new   JPanel();p3.setLayout(new   FlowLayout());  
  p1.add(t);  
  p1.add(b4);  
  p2.add(t1);  
  p2.add(b5);      
  f.getContentPane().add("North",jl);  
  f.getContentPane().add("Center",p);  
  p.add(p1);  
  p.add(p2);  
  p.add(p3);  
  p3.add(b1);  
  p3.add(b2);  
  p3.add(b3);  
  f.setVisible(true);  
  b4.addActionListener(new   buttonA(1));  
  b5.addActionListener(new   buttonA(2));  
  b1.addActionListener(new   buttonA(3));  
  b2.addActionListener(new   buttonA(4));  
  b3.addActionListener(new   buttonA(5));  
   
   
  }  
   
   
   
  public   static   void   main(String   args[])  
  {  
  copy   my=new   copy();  
  }  
  class   buttonA   implements   ActionListener  
  {  
  JFileChooser   fc=new   JFileChooser("c:/");  
  int   sel;  
  File   sf,sf1;  
  String   fname,fname1;  
  buttonA(int   select)  
  {  
  this.sel=select;  
  }  
  public   void   actionPerformed(ActionEvent   e)  
  {  
  if(sel==1)  
  {  
  fc.showOpenDialog(null);  
  sf=fc.getSelectedFile();  
  fname=sf.getAbsolutePath();  
  t.setText(fname);  
  }  
  else   if(sel==2)  
  {  
  fc1.showOpenDialog(null);  
  sf1=fc1.getSelectedFile();  
  fname1=sf1.getAbsolutePath();  
  t1.setText(fname1);  
  }  
  else   if(sel==3)  
  {  
  try  
  {  
  File   f=new   File(fname);  
  FileInputStream   fi=new   FileInputStream(f);  
  FileOutputStream   fo=new   FileOutputStream(fname1);  
  byte   b[]=new   byte[1024];  
  int   i=fi.read(b);  
  while   (fi.read(b)!=-1)  
  {  
  fo.write(b);  
  fo.flush();  
  i=fi.read(b);  
  }  
  System.out.println   ("复制完毕");  
  fi.close();  
  fo.close();  
   
  }catch(Exception   e1){}  
   
  }  
  else   if(sel==5)  
  {  
  System.exit(0);  
  }  
  else   if(sel==4)  
  {  
   
  }  
   
  }  
   
  }  
   
   
   
   
   
   
   
   
  }         这是我做的一个复制程序代码     不知道哪里错了   不能实现复制功能 问题点数:20、回复次数:10Top

1 楼lydvqq(碧水情缘♀黑哥)回复于 2006-03-03 21:57:32 得分 0

报什么错,在哪个地方报错?Top

2 楼believefym(feng)回复于 2006-03-03 21:57:35 得分 0

int   i=fi.read(b);  
  while   (fi.read(b)!=-1)  
  {  
  fo.write(b);  
  fo.flush();  
  i=fi.read(b);  
  }  
   
  这里fi读了很多次,但写了没几次  
  while(fi.read(b)!=-1){fo.write(b)};  
  循环结束再flush也不迟Top

3 楼humous99(前夕的泪)回复于 2006-03-03 23:10:50 得分 0

没用   我试过了  
   
      回lydvqq(碧水情缘♀黑哥)   :  
          我的程序没有报错,   只是运行问题!Top

4 楼humous99(前夕的泪)回复于 2006-03-04 09:28:18 得分 0

怎么没人看哪       求救啊``~`Top

5 楼725137(2006年不会菜)回复于 2006-03-04 11:07:53 得分 0

估计应该是你这里的问题..  
   
  File   f=new   File(fname);  
  FileInputStream   fi=new   FileInputStream(f);  
  FileOutputStream   fo=new   FileOutputStream(fname1);  
   
  这里可能会涉及到一个文件路径中\与\\的文件..可能是你这里的文件路径不对..  
  你可以试着改成这样试试就能知道是否这里出问题了  
   
  FileInputStream   fi=new   FileInputStream("c:\\a.txt");  
  FileOutputStream   fo=new   FileOutputStream("c:\\b.txt");  
   
  Top

6 楼humous99(前夕的泪)回复于 2006-03-04 11:14:43 得分 0

改过了     不是这里的问题     -   -!~Top

7 楼725137(2006年不会菜)回复于 2006-03-04 11:36:26 得分 0

哦。仔细一才看发现。你把  
  String   fname,fname1;这句放在了内部类里。。这样是不行的。。你需要把他放到你外部类里。  
   
  把内部类里那句去掉。。  
  在外部类里定义  
  class   copy  
  {  
      public   String   fname,fname1;  
  .......Top

8 楼humous99(前夕的泪)回复于 2006-03-04 11:37:57 得分 0

J2SE     扩展里也有这帖子     一旦问题解决   请过去领分  
  Top

9 楼725137(2006年不会菜)回复于 2006-03-04 11:38:36 得分 20

还有。你根本没按我第一次的方法改了试下啊。。你说你改了发现不是那里的问题。我这才发现。你把这放到了内部类里。。放在内部类里的话。按道理你在调用  
  File   f=new   File(fname);  
  FileInputStream   fi=new   FileInputStream(f);  
  FileOutputStream   fo=new   FileOutputStream(fname1);  
   
  这几句时fname和fname是没有值的,所以不能复制成功...  
  Top

10 楼humous99(前夕的泪)回复于 2006-03-04 11:41:10 得分 0

好了     谢谢了啊``~`       请去扩展版领分Top

相关问题

  • 简单的Socket报错问题,请教一下!很快揭帖
  • 结果错误了 麻烦帮检查一下
  • 帮我找一下错。。。。。
  • 请帮我排一下错?
  • 帮我查一下错
  • 看一下,那错了?
  • 帮忙看一下错误
  • 那错了?看一下
  • 帮着查一下错误!
  • 看一下哪里错了,

关键词

  • 文件
  • jlabel
  • jbutton
  • fname
  • jpanel
  • jl
  • fileinputstream
  • fileoutputstream
  • setlayout
  • getcontentpane

得分解答快速导航

  • 帖主:humous99
  • 725137

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo