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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 何明辉 于 2012-9-13 00:08 编辑

import java.io.*;
class WriterDemo
{
public static void main(String[] args)throws IOException
{
  BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
  PrintWriter bm=new PrintWriter((System.out));
  System.setOut(new PrintStream("D:\\22222.text"));
  String line;
  while((line=bf.readLine())!=null)
  {
   if(line.equals("over"))break;
   bm.write(line);
   bm.flush();
  }
  bf.close();
  bm.close();
}
}
22222.text中怎么没有记录啊,我在输入的时候;

4 个回复

正序浏览
  1. import java.io.*;
  2. class WriterDemo
  3. {
  4.         public static void main(String[] args)throws IOException
  5.         {
  6.             BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
  7.                     //以下两行代码的顺序调换即可,先设置标准输出流位置,再调用
  8.             System.setOut(new PrintStream("D:\\22222.text"));  //这种构造方式在API里也有
  9.             PrintWriter bm=new PrintWriter((System.out));
  10.          
  11.             String line;
  12.             while((line=bf.readLine())!=null)
  13.             {
  14.                     if(line.equals("over"))break;
  15.                     bm.println(line);         //这里使用println就不用手动换行了
  16.                     bm.flush();
  17.            }
  18.            bf.close();
  19.            bm.close();
  20.         }
  21. }
复制代码
希望可以帮助到你
回复 使用道具 举报
下面是我的代码
import java.io.*;
public class Test {
        public static void main(String[] args)throws Exception {
                BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
                System.setOut(new PrintStream(new File("D:\\22222.text")));
                PrintWriter out=new PrintWriter(System.out,true);true代替flush刷新,下面就可以省略flush。
                                                                            没有标记的方法不能刷新,所以下面是用out.println

                String line=null;
                while((line=bufr.readLine())!=null)
                {
                        if(line.equals("over"))break;
                        out.println(line);可以直接用PrintWriter 的println,这样就不用再添加"\n"了。
                                                         

                }
                out.close();
                  bufr.close();
        }
}
回复 使用道具 举报
package com.itheima.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;

public class StreamDemo {
        public static void main(String[] args) throws IOException {
                BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
                System.setOut(new PrintStream(new File("D:\\22222.txt"))); //参见JDK,重新分配“标准”输出流
                PrintWriter bm = new PrintWriter(System.out);  //再次使用标准的输出流就改变,就会输出到22222.txt文件中了
                String line;
                while ((line = bf.readLine()) != null) {
                        if (line.equals("over"))
                                break;
                        bm.write(line);
                        bm.flush();
                        bm.append("\n");
                }
                bf.close();
                bm.close();
        }
}

楼主可以试试哦!
回复 使用道具 举报
本帖最后由 覃宏海 于 2012-9-13 00:33 编辑

import java.io.*;
public class WriterDemo {
        public static void main(String[] args)throws IOException
         {
           BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
           PrintWriter bm=new PrintWriter("D:\\22222.txt");
         //  System.setOut(new PrintStream("D:\\22222.txt"));
           String line;
           while((line=bf.readLine())!=null)
           {
            if(line.equals("over"))
                    break;
            bm.write(line);
            bm.flush();
           }
           bf.close();
           bm.close();
         }

}

你把输出结果直接打印在屏幕上了  而不是保存在文件上
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马