A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白磊 中级黑马   /  2013-5-11 20:55  /  2280 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 白磊 于 2013-5-13 12:35 编辑

import java.io.*;

public class A {
        public static void main(String[] args) {
                BufferedReader bufr = null;
                BufferedWriter bufw = null;
                try {
                        bufr = new BufferedReader(new FileReader("D:/workspace/a.txt"));
                        bufw = new BufferedWriter(new FileWriter("D:/workspace/b.txt"));               
                        String line = null;
                        while ((line = bufr.readLine()) != null) {
                                bufw.write(line);
                                bufw.newLine();// 换行
                                bufw.flush();// 刷新缓冲区。
                        }
                } catch (IOException e) {
                        throw new RuntimeException("读写失败");
                } finally {
                        try {
                                if (bufr != null)
                                        bufr.close();// 指向不为空,就关闭流对象。
                        } catch (IOException e) {
                                throw new RuntimeException("读取流关闭失败");
                        }
                        try {
                                if (bufw != null)
                                        bufw.close();
                        } catch (IOException e) {
                                throw new RuntimeException("写入流关闭失败");
                        }
                }
        }
}



Exception in thread "main" java.lang.RuntimeException: 读写失败
        at A.main(A.java:21)
就是这一句:
catch (IOException e) {
                        throw new RuntimeException("读写失败");

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

16 个回复

倒序浏览
我这里运行没问题。目测位置D:/workspace/a.txt的源文件不存在。
回复 使用道具 举报
因为没有找到文件吧 a.txt
回复 使用道具 举报
你看看a和b的文件是否存在
回复 使用道具 举报
任江峰 发表于 2013-5-11 21:07
我这里运行没问题。目测位置D:/workspace/a.txt的源文件不存在。

可是我是有的啊
回复 使用道具 举报
hou604720966 发表于 2013-5-11 21:12
你看看a和b的文件是否存在

是存在的啊
回复 使用道具 举报
白磊 中级黑马 2013-5-11 21:26:36
7#
李志敏 发表于 2013-5-11 21:09
因为没有找到文件吧 a.txt

有的,所以我也不知道是哪里出错了
回复 使用道具 举报
应该是没有 a.txt,如果是输入流的话,一定要指定到特定的文件,如果是输出流的话,会先先判断文件是否
存在,如果不存在,就会自行创建的。
  1. FileOutputStream out =new FileOutputStream(new File("F:\\javaCode\\Files\\test.txt"));
复制代码
其中的test.txt,就不必存在Files下。
回复 使用道具 举报
白磊 发表于 2013-5-11 21:25
是存在的啊

在这个异常throw new RuntimeException("读写失败");  前或后 增加e.printStackTrace();
看看输出的异常是什么了
回复 使用道具 举报
是不是文件路径那里,由于转义字符的关系,要写两个反斜线!!!
回复 使用道具 举报
hou604720966 发表于 2013-5-11 21:32
在这个异常throw new RuntimeException("读写失败");  前或后 增加e.printStackTrace();
看看输出的异常是 ...

a.txt和b.txt明明都是有的啊    可是还这报这样的错

java.io.FileNotFoundException: D:\a.txt (系统找不到指定的文件。)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(Unknown Source)
        at java.io.FileInputStream.<init>(Unknown Source)
        at java.io.FileReader.<init>(Unknown Source)
        at A.main(A.java:8)
Exception in thread "main" java.lang.RuntimeException: 读写失败
        at A.main(A.java:18)
回复 使用道具 举报
1,看看文件路径是不是出错了,看看你的txt文件放在当前文件下。
2,用flag标记输出看有没有读写成功。
回复 使用道具 举报
白磊 发表于 2013-5-11 21:52
a.txt和b.txt明明都是有的啊    可是还这报这样的错

java.io.FileNotFoundException: D:\a.txt (系统找 ...
问题找到了,你自己解决吧。
给你个建议:向异常你最好是打印出来,因为它能帮你更快的找到是什么原因引发的错,这样你解决就更快了,还有就是学会调试, 调试代码是非常重要的
回复 使用道具 举报
import java.io.*;

public class A {
         public static void main(String[] args) throws Exception {
                 BufferedReader bufr = null;
                 BufferedWriter bufw = null;
                         bufr = new BufferedReader(new FileReader("D:/workspace/a.txt"));
                         bufw = new BufferedWriter(new FileWriter("D:/workspace/b.txt"));               
                        String line = null;
                         while ((line = bufr.readLine()) != null) {
                                 bufw.write(line);
                                 bufw.newLine();// 换行
                                 bufw.flush();// 刷新缓冲区。
                         }
                 
         }
}
如果简单小程序不用处理exception,给你提示就行了啊throws就行

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
      bufr = new BufferedReader(new FileReader("D:/workspace/a.txt"));     //这里加两个反斜杠试试  转义字符D://workspace/a.txt
                        bufw = new BufferedWriter(new FileWriter("D:/workspace/b.txt"));             //D:/workspace/b.txt
  转义字符
回复 使用道具 举报
既然找不到异常,那就把异常信息打印出来吧。这样才能找到问题。
你可以把 throw new RuntimeException("读写失败");中的“”删除,再运行一次看看是哪的问题。
回复 使用道具 举报
Sword 金牌黑马 2013-5-13 11:09:52
17#
如果问题未解决,请继续追问,如果问题解决了,请点击你的帖子下面的"编辑"重新编辑帖子,将分类改为“已解决”,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马