BufferReader异常

u012282088 2013-11-27 04:47:02
package IO;
import java.io.*;


public class TestIO {

public static void main(String[] args) {

FileInputStream fis = null;
FileOutputStream fos = null;

try {
fis = new FileInputStream("G:\\shi's work\\java\\question.txt");
fos = new FileOutputStream("G:\\shi's work\\java\\copy1.txt");
;
} catch (FileNotFoundException e) {
System.out.println("文本地址错误");
e.printStackTrace();
}

BufferedReader br = null;
BufferedWriter bw = null;
String tem;
try{
br = new BufferedReader(new InputStreamReader (fis));
bw = new BufferedWriter(new OutputStreamWriter(fos));

while((tem =br.readLine())!=null){
bw.write(tem);
}
}catch(Exception e){
e.printStackTrace();
}
finally{
try {
br.close();
bw.flush();
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
}
文件也正确的复制了,但是最后抛出异常,求解释

PS:我删除了与它无关的源代码,所以最后提示的行数不是54
...全文
226 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
u012282088 2013-11-27
  • 打赏
  • 举报
回复
引用 4 楼 a470577391 的回复:
已试,没有异常,但有点问题 bw.write(tem);改成bw.write(tem+"\r\n");最好 关闭的时候先关bw,在关br,你还有fis和fos没有关闭
学习学习
u012282088 2013-11-27
  • 打赏
  • 举报
回复
引用 3 楼 lwb314 的回复:
话说我这里没报错
这不科学...
老紫竹 2013-11-27
  • 打赏
  • 举报
回复
fis和fos关闭就可以了。
白开水MD5 2013-11-27
  • 打赏
  • 举报
回复
已试,没有异常,但有点问题 bw.write(tem);改成bw.write(tem+"\r\n");最好 关闭的时候先关bw,在关br,你还有fis和fos没有关闭
  • 打赏
  • 举报
回复
话说我这里没报错
  • 打赏
  • 举报
回复
原来的54行是哪句啊?如果是bw.flush();,那你把它移动到br.close();前边
teemai 2013-11-27
  • 打赏
  • 举报
回复

import java.io.*;

public class TestIO {

	public static void main(String[] args) {

		FileInputStream fis = null;
		FileOutputStream fos = null;

		try {
			fis = new FileInputStream("G:\\shi's work\\java\\question.txt");
                        fos = new FileOutputStream("G:\\shi's work\\java\\copy1.txt");
			;
		} catch (FileNotFoundException e) {
			System.out.println("文本地址错误");
			e.printStackTrace();
		}

		BufferedReader br = null;
		BufferedWriter bw = null;
		String tem;
		try {
			br = new BufferedReader(new InputStreamReader(fis));
			bw = new BufferedWriter(new OutputStreamWriter(fos));

			while ((tem = br.readLine()) != null) {
				bw.write(tem);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
				bw.flush();
				bw.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
	}
}
测试没啥问题

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧