| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1798 人关注过本帖
标题:关于异常的问题,遇到几次了都不明白怎么回事!
只看楼主 加入收藏
ren829
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:15
帖 子:255
专家分:1174
注 册:2006-3-11
结帖率:100%
收藏
 问题点数:0 回复次数:2 
关于异常的问题,遇到几次了都不明白怎么回事!

原题:
在当前目录下建立两个文件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"); 这个是在哪个目录下建立文件?

搜索更多相关主题的帖子: 答案 
2006-07-31 17:55
lyd8935
Rank: 1
等 级:新手上路
帖 子:219
专家分:0
注 册:2006-5-14
收藏
得分:0 

晕,你只捕捉了一部分,没有捕捉完全呀..

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);

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();
}
catch (IOException e)
{
System.out.println("Error"+e.toString());
}
}
}

2006-07-31 19:59
ren829
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:15
帖 子:255
专家分:1174
注 册:2006-3-11
收藏
得分:0 
谢谢,问题解决了,看来是书上给的答案出错了。又学到一个!
2006-07-31 20:45
快速回复:关于异常的问题,遇到几次了都不明白怎么回事!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015162 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved