import java.io.*;
public class Test3{
public static void main(String args[])throws IOException{
 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 String s;
 //PrintWriter pw=new PrintWriter(new FileWriter("panzi.txt"));
 BufferedWriter bw=new BufferedWriter(new FileWriter("pan.txt"));
 while(true){
  s=br.readLine();
  if(s.length()<1) break;
  bw.write(s);
   //bw.println(s);
 }
   bw.close();
   br.close();

}
}
我希望把我从键盘入的中文都(All)写到文本文档中去   可是我写的这个简单的程序只能将我从控制输入的内容的一部分写到文本中去        我这个程序不行啊,     给我讲解一下  最好有一个实例啊    

解决方案 »

  1.   

    这个就是全部啊。
    你是不是说没有换行,加个换行就行了。
    bw.write(s);
    bw.newLine();
      

  2.   

    我已经 找到了一些资源来解决这个问题       如果有好的办法可以讲解一下    关于用FileWriter和FileReaderr 的读取与写入的           共同学习    
      

  3.   

    bw.write(s);之后加一个bw.flush(); 就可以了,因为BufferedWrite 是带缓冲的。。
      

  4.   

    不是吧,     bw.flush()  不行吧       
    查到了一些别人写的 不是这样的啊,  
    import java.io.*;
    public class WriteTest{
    public static void main(String[] args) throws IOException{
    String s=bb.readLine();
    BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("iotest.txt"),"GB2312"));
    //while((s=bb.readLine())!=null){
    bw.write(s);
             bw.flush();
    bw.close();
    }
    }     冒似这样还不行啊  帮我看一下    为什么从控制台读取的就不行呢,           别人的就可以啊,   是从一个文件读取放到另一个文件中去    帮忙看一下    flush()还是不行啊,    比如  输入“中国”   还是保存的为"中?" 
      

  5.   

    我就用你给的代码加上bw.flush()就完全正确,因此我想代码是没有问题的。
      

  6.   

    不晓得为什么啊,   我再次又试了   还是只能保存一部分    即    输入“中国”  保存的还是那个   “中?”
        不晓得为什么     难道是机子的问题 或是JDK  有么问题    应该不会吧,  我也认为  那个程序是没问题的 
       看一下别人的吧    
       他的在我的机子上就可以   
    import java.io.*;public class IOTest 
    {
        public static void main(String[] args) throws Exception
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("in.txt"),"GB2312"));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt"),"GB2312"));
            String data = null;
            while((data = br.readLine())!=null)
            {
                System.out.println(data);
    //            System.out.println(new String(data.getBytes("GBK")));
                bw.write(data);
                bw.newLine();
            }
            br.close();
            bw.close();
              try{ 
     int   b; 
     FileInputStream   in   =   new   FileInputStream("a.txt"); 
     FileOutputStream   ou   =   new   FileOutputStream("b.txt"); 
     InputStreamReader reader = new InputStreamReader(in,"gbk"); 
     OutputStreamWriter writer = new OutputStreamWriter(ou,"gbk"); 
     while((b=reader.read())!=-1){ 
      System.out.print((char)b); 
     writer.write(b); 
     } 
     writer.flush(); 
     }catch(IOException   e){ 
     System.out.println(e.getMessage()); 
     } 
        }
    }
      

  7.   

    看一下这个吧   适合你import java.io.*;public class TestPrintStream{ public static void main(String [] args){
    PrintStream ps=null;
    try{
    FileOutputStream fos=new FileOutputStream("D:/11.txt");
    ps=new PrintStream(fos);

    if(ps!=null){
    System.setOut(ps);
    }

    for(int i=0;i<50;i++){
      System.out.println((char)i);
    }
    }catch(IOException e){
    e.printStackTrace();
    }
    }
    }
      

  8.   

    还得加类型UTF-8  或GBk都行
      

  9.   

    下面的是他的?上面是你的?平台的encoding是GBK
      

  10.   

     问题   又出现了     比如说   我不从键盘输入    我定义一个字符串String str="我是一个学生"    不用控制台的输入    这样就可以把那个str中的内容 原样的写进文档中 即写入的就是  我是一个学生     这是为什么啊,      就是不能用控制台的输入的 内容完整的写到文档中     
      

  11.   

    直接加个bw.flush();就可以了,我在 dos 窗口下运行了,没问题可以完成你的功能需求,你用的是什么集成开发工具?要不你直接在dos窗口下试试。。
      

  12.   

    我现在用的是JCreator     不晓得是么原因啊,   那我只有明天再试一下了啊,
    不晓得为什么      
      

  13.   

    用UTF-8还是不行  跟那个结果 一样    GBK也试了         7楼的是别人的代码    我只是把他拿来学习一下 
      

  14.   

    JCreator 在处理流的程序,有的时候是会出问题的。