原题:
在当前目录下建立两个文件my1.txt my2.txt 文件 my1.txt 的内容由命令行参数给出或键盘输入,然后再将 my1.txt 的内容写到my2.txt 中。
给出的答案:
import java.io.*;
class CFileInOut
{
private char c;
void copy()
{
System.out.println("从键盘输入文件内容,以回车结束:");
StringBuffer buf=new StringBuffer();
try
{
while((c=(char)System.in.read())!='\n')
buf.append(c);
}
catch (IOException e)
{
System.out.println("Error"+e.toString());
}
byte b[]=buf.toString().trim().getBytes();
FileOutputStream f1=new FileOutputStream("my1.txt");
f1.write(b);
f1.close();
FileInputStream f2=new FileInputStream("my1.txt");
FileOutputStream f3=new FileOutputStream("my2.txt");
int c2;
while((c2=f2.read())!=-1)
f3.write(c2);
//}
f2.close();
f3.close();
}
}
class FileInOut
{
public static void main(String[]args)throws Exception
{
CFileInOut f=new CFileInOut();
f.copy();
}
};
可是运行的时候却是这样的提示:
FileInOut.java:20: 未报告的异常 java.io.FileNotFoundException;必须对其进行捕捉
或声明以便抛出
FileOutputStream f1=new FileOutputStream("my1.txt");
^
FileInOut.java:22: 未报告的异常 java.io.IOException;必须对其进行捕捉或声明以便
抛出
f1.write(b);
^
FileInOut.java:23: 未报告的异常 java.io.IOException;必须对其进行捕捉或声明以便
抛出
f1.close();
^
FileInOut.java:24: 未报告的异常 java.io.FileNotFoundException;必须对其进行捕捉
或声明以便抛出
FileInputStream f2=new FileInputStream("my1.txt");
^
FileInOut.java:25: 未报告的异常 java.io.FileNotFoundException;必须对其进行捕捉
或声明以便抛出
FileOutputStream f3=new FileOutputStream("my2.txt");
^
FileInOut.java:27: 未报告的异常 java.io.IOException;必须对其进行捕捉或声明以便
抛出
while((c2=f2.read())!=-1)
^
FileInOut.java:28: 未报告的异常 java.io.IOException;必须对其进行捕捉或声明以便
抛出
f3.write(c2);
^
FileInOut.java:30: 未报告的异常 java.io.IOException;必须对其进行捕捉或声明以便
抛出
f2.close();
^
FileInOut.java:31: 未报告的异常 java.io.IOException;必须对其进行捕捉或声明以便
抛出
f3.close();
^
9 错误
请按任意键继续. . .
问题出在哪?为什么每个操作都要捕获异常啊?
FileOutputStream f3=new FileOutputStream("my2.txt"); 这个是在哪个目录下建立文件?