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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.itheima;

  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.io.IOException;

  5. /**
  6. * 7、 自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件
  7. * (例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
  8. *
  9. * @author KEVIN
  10. *
  11. */
  12. public class Test_07 {
  13.         public static void main(String[] args) throws IOException {
  14.                 Input in = new Input("Test_02.java");
  15.                 //System.out.println(in.getFileName());
  16.                 in.reader();
  17.                
  18.         }
  19.        
  20.        
  21. }

  22. class Input {
  23.          String fileName;

  24.         public Input(String fileName) {
  25.                 this.fileName = fileName;
  26.         }
  27. public String getFileName(){
  28.         return this.fileName;
  29. }
  30.         public void reader() throws IOException {
  31.                 BufferedReader br = new BufferedReader(new FileReader(fileName));
  32.                
  33.                 int x = 1 ;
  34.                 String str = null;
  35.                 while((str=br.readLine())!=null){
  36.                         StringBuilder sb = new StringBuilder();
  37.                         sb = sb.append(x).append(":").append(str);
  38.                        
  39.                         String s = sb.toString();
  40.                         System.out.println(s);
  41.                         x++;
  42.                        
  43.                 }
  44.         }
  45. }
复制代码

求大神帮忙看看为什么一直报错找不到文件?可是命名同一个包下就是有文件的啊。全路径就可以。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

26 个回复

倒序浏览
有人知道吗??
回复 使用道具 举报
有大神分析一下吗?
回复 使用道具 举报
有没有有人会啊
回复 使用道具 举报
这个你可以去网上搜一下答案,挺多的。其实就是你用的相对路径错了,这个文件是要放在工程目录的下面,并不是
要放在和编译的.java文件同目录下。你把这个文件放在跟src文件平行下的目录就可以了。
回复 使用道具 举报
能不能在文件前面加一个./   本目录下面的嘛。
回复 使用道具 举报
相对路径是相对于所在项目的根目录而言的,你将那个文件复制过去就可以,即\workspace\learn_say(我的项目名称)的下面,与src,bin文件夹是同一级
回复 使用道具 举报
也可以这样写  .\\src\\learn_say(package包名)\\Test2.java
回复 使用道具 举报
你的黑马币和技术分好多啊,我正在过报名的第三关,要技术分10分,郁闷啊,求指教

评分

参与人数 1黑马币 +20 收起 理由
348532020 + 20 还有发帖子,发一次帖子两个黑马币。加油。.

查看全部评分

回复 使用道具 举报
forTomorrow 发表于 2015-5-27 17:21
你的黑马币和技术分好多啊,我正在过报名的第三关,要技术分10分,郁闷啊,求指教 ...

多做活动就好了,不是有好多送黑马币的帖子么,你就多回复,然后有活动就做做简单的活动。然后每天回复五次帖子五个黑马币,登录一币,签到一币。加上送的黑马币,基本上挺快的。我差不多不到半个月就25分了。我到现在也才一个月多点吧、
回复 使用道具 举报
姬光普 发表于 2015-5-27 15:07
这个你可以去网上搜一下答案,挺多的。其实就是你用的相对路径错了,这个文件是要放在工程目录的下面,并不 ...

是在相对路径下的,我做的正好是test7,然后文件是test1,都在一个包下的,我也不知道为什么就是不行。我记得好像有一种复制文件的就是绝对路径来着。具体的忘了。不知道是不是我这种。
回复 使用道具 举报
348532020 发表于 2015-5-28 00:00
多做活动就好了,不是有好多送黑马币的帖子么,你就多回复,然后有活动就做做简单的活动。然后每天回复五 ...

谢谢兄弟的奖励,好激动!!!我之前有自学过Java最近才开始报名,无奈过到第三关才发现要技术分,早知道我之前学的时候就发帖了,现在又要重新看视频!!!!悲催啊!!!也不知道能不能进6月30号的大数据班,非常感谢馈赠!!!!!!!!:victory:
回复 使用道具 举报
我现在是一边工作一边过关啊,苦逼的生活!为什么黑马不在首页或者自学视频教程前面说清楚要技术分什么的呢,这样就能早点注册发帖啊,不至于自学完了报名的时候才发现要技术分!!!希望能改进
回复 使用道具 举报
forTomorrow 发表于 2015-5-28 10:20
谢谢兄弟的奖励,好激动!!!我之前有自学过Java最近才开始报名,无奈过到第三关才发现要技术分,早知道 ...

不客气。不过没事多看看论坛,前面置顶的那些帖子,好多都有说明的,因为黑马的消息基本全是通过论坛来发布的。多看看就知道了。我也是之前在论坛上看了。然后看视频,传日志,论坛技术分都是同步进行的,。不过你也可以继续看巩固基础。或者提前预习安卓的课程,以后学起来也不会太吃力
回复 使用道具 举报
forTomorrow 发表于 2015-5-28 10:30
我现在是一边工作一边过关啊,苦逼的生活!为什么黑马不在首页或者自学视频教程前面说清楚要技术分什么的呢 ...

而且如果你是先付费的话好像不用技术分吧,好像。我也不清楚。这有个帖子,是先付费的。我也不知道你是不是先付费,如果你是准备先付费的话,可以看看。先付费便宜4000.
http://bbs.itheima.com/forum.php?mod=viewthread&tid=62090
回复 使用道具 举报
348532020 发表于 2015-5-28 10:52
不客气。不过没事多看看论坛,前面置顶的那些帖子,好多都有说明的,因为黑马的消息基本全是通过论坛来发 ...

额。我想报大数据班,不想搞安卓!其实数据库框架那些我有自学过,只是感觉太不扎实了,项目也没做,所以才想来黑马
回复 使用道具 举报
forTomorrow 发表于 2015-5-28 10:58
额。我想报大数据班,不想搞安卓!其实数据库框架那些我有自学过,只是感觉太不扎实了,项目也没做,所以 ...

嘿嘿,不好意思,因为我是准备学安卓,所以把你也想成学安卓了。。。
回复 使用道具 举报
本帖最后由 曲终烟尽 于 2015-5-28 11:08 编辑
  1. public void reader() throws IOException {
  2.                 BufferedReader br = new BufferedReader(new FileReader(fileName));
  3.                
  4.                 int x = 1 ;
  5.                 String str = null;
  6.                 while((str=br.readLine())!=null){
  7.                         StringBuilder sb = new StringBuilder();  //这里  new  了一个 StringBuilder对象,sb引用了这个新的对象
  8.                         sb = sb.append(x).append(":").append(str);   //这里sb添加,添加第x个字符串,我很纳闷,你都new 了一个对象了,怎么还能继续累加x再添加进这个新的对象sb里。添加的位置似乎不对。
  9.                         
  10.                         String s = sb.toString();//这里转换成文本,似乎没问题
  11.                         System.out.println(s);//这里输出文本,没问题
  12.                        x++;//这里 x++,语句没问题,逻辑有问题,你为何要++,你++的目的和之前sb.append(x)的位置是对应的吗?,你之前是new了一个新对象,每次循环都new 一遍,new 的新对象里边是空的,而你直接用append(x)往一个空的对象里向一个超过0的位置追加内存,逻辑上来说是错的!
  13.                         
  14.                 }
  15.         }
复制代码


StringBuilder sb = new StringBuilder();  //这里  new  了一个 StringBuilder对象,sb引用了这个新的对象
sb = sb.append(x).append(":").append(str);   //这里sb添加,添加第x个字符串,我很纳闷,你都new 了一个对象了,怎么还能继续累加x再添加进这个新的对象sb里。添加的位置似乎不对。
x++;//这里 x++,语句没问题,逻辑有问题,你为何要++,你++的目的和之前sb.append(x)的位置是对应的吗?,你之前是new了一个新对象,每次循环都new 一遍,new 的新对象里边是空的,而你直接用append(x)往一个空的对象里向一个超过0的位置追加内存,逻辑上来说是错的!
回复 使用道具 举报
你的代码我看了,发现一个问题,已经回帖,你看看对不对,没权限发消息,
回复 使用道具 举报
权限太低,给点分吧。楼上的都是匆匆过客,木的意思。看我多么的虔诚,加个好友吧。

点评

分数很好得。有很多教你怎么得黑马币的帖子,然后多做活动,多回复赠黑马币的那些帖子,很快就够了,不用着急。  发表于 2015-5-28 11:37
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马