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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.io.*;

  2. public class Demo10 {
  3.         public static void main(String args[]) throws IOException {
  4.                 BufferedReader bf = new BufferedReader(new FileReader(new File("e:\\xxxd.txt"))) ;
  5.                 String str = null ;
  6.                 while((str = bf.readLine())!=null){
  7.                 System.setOut(new PrintStream(new File("e:\\cyc\\copy.txt"))) ; //改变打印方向
  8.                 System.out.println(str) ;
  9.                 }
  10.         }
  11. }
复制代码

5 个回复

倒序浏览
本帖最后由 skill20 于 2014-5-2 22:23 编辑

PrintStream是自动刷新不是你这样弄吧?我觉得是没刷新弄的。  System.setOut(new PrintStream("e:\\cyc\\copy.txt"),true);考谱不?
回复 使用道具 举报
本帖最后由 lzhuas 于 2014-5-2 22:43 编辑

import java.io.*;

public class Demo10 {
        public static void main(String args[]) throws IOException {
                BufferedReader bf = new BufferedReader(new FileReader(new File("e:\\xxxd.txt"))) ;
                String str = null ;                                PrintWriter out  = new PrintWriter(new FileWriter("e:\\cyc\\copy.txt"),true);//解决办法
                while((str = bf.readLine())!=null){
                //System.setOut(new PrintStream(new File("e:\\cyc\\copy.txt"))) ; //改变打印方向//我看了很久,问题就在你这一行,你不要太贪方便了,在循环里你就不断的创建文件,不断覆盖。。。所以就剩最后一行啦,实在不会就参考着视频写吧,我也在挣扎呢。解决办法是在外面创建流和文件。还有别忘了关闭流,黑马程序员要有好习惯!
               out.println(str) ;
                }        }
}




评分

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

查看全部评分

回复 使用道具 举报
犯了一个很低级的错误!!每次写入之前都重新设置了流,肯定只写最后一行了!!
public class Demo10 {

        public static void main(String args[]) throws IOException {

                BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("g:\\xxxd.txt"))) ;

                String str = null ;
                System.setOut(new PrintStream("g:\\copy.txt"));
                while((str = bf.readLine())!=null){
                    System.out.println(str);
                }

                bf.close();

        }

}
回复 使用道具 举报
while((str = bf.readLine())!=null){
                System.setOut(new PrintStream(new File("e:\\cyc\\copy.txt"))) ; //改变打印方向
                System.out.println(str) ;
                }
new PrintStream //开流
new File("e:\\cyc\\copy.txt")//新建文件。
你每读一行,就开一次流,创建一个文件把 上一次的覆盖掉,
最后得到的就是你那样的东西啦。
回复 使用道具 举报
谢谢各位了,我还真没想到这个,对这个还没了解透吧!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马