我尝试使用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)