我尝试使用FileInputStream和FileOutputStream通过以下代码复制文件的内容:

public class Example1App {
   public static void main(String[] args) {
    Example1 program= new Example1();
    program.start();
   }
}




import java.io.*;
public class Example1 {
    public static void main(String[] args) throws Exception {
       FileInputStream fin = new FileInputStream(args[0]);
       FileOutputStream fout = new FileOutputStream(args[1]);
       int c;
       while ((c = fin.read()) != -1)
       fout.write(c);
       fin.close();
       fout.close();
     }
   }


编译时,错误消息为:
找不到标志
    program.start();
           ^
  符号:方法start()
  位置:Example1类型的变量程序
谁能帮助我解释为什么会这样?
非常感谢您的提前帮助。

最佳答案

发生这种情况是因为Example1类中没有名为start的方法。

您可能想做的是:


在您的start()类中创建一个Example1方法
更好的是,代替方法start(),将方法命名为copy并为其指定参数:copy(String arg0, String arg1)


因此,您将获得:

import java.io.*;
public class Example1 {
    public void copy(String inName, String outName) throws Exception {
       FileInputStream fin = new FileInputStream(inName);
       FileOutputStream fout = new FileOutputStream(outName);
       int c;
       while ((c = fin.read()) != -1)
       fout.write(c);
       fin.close();
       fout.close();
     }
}


和:

public class Example1App {
   public static void main(String[] args) {
       Example1 program = new Example1();
       try {
         program.copy(args[0], args[1]);
       } catch (Exception e) {
         // Generally, you want to handle exceptions rather
         // than print them, and you should handle some
         // exceptions in copy() so you can close any open files.
         e.printStackTrace();
       }
   }
}


(实际上,您可以将它们组合到一个程序中-只需将main方法从Example1App移至Example1,然后删除Example1App)

08-04 20:43