import java.io.*;
public class TestBufferStream2 {
  public static void main(String[] args) {
    try {
      BufferedReader bw = new BufferedReader(new FileReader("f:\\dat2.txt"));
     // BufferedReader br = new BufferedReader(
          //   new FileReader("d:\\share\\java\\dat2.txt"));
     int b=0;
     while((b=bw.read())!=-1)
       
{ System.out.print((char) b);
}
     
   
      bw.close(); 
    
    } catch (IOException e) { e.printStackTrace();}
  }
}
显示文件读取成功
但是我换一个方式实现,虽然实现了但是显示的不对为什么谢谢!!!另一种方式如下:
import java.io.*;
public class TestBufferStream2 {
  public static void main(String[] args) {
    try {
      BufferedReader bw = new BufferedReader(new FileReader("f:\\dat2.txt"));
     // BufferedReader br = new BufferedReader(
          //   new FileReader("d:\\share\\java\\dat2.txt"));
     
     while((bw.read())!=-1)
       
{ System.out.print((char) bw.read());
}
     
   
      bw.close(); 
    
    } catch (IOException e) { e.printStackTrace();}
  }
}第一个是文件的正常显示。第二个为错误的显示,如下
erdfgdfaef
fefafaw
gegag
gagagawg
gawgawga
fcawefawrve
F:\>javac TestBufferStream2.javaF:\>java TestBufferStream2
rfdaf
ggg
aaag
agwa
cwfwv?

解决方案 »

  1.   

    while((bw.read())!=-1)
        
    { System.out.print((char) bw.read());
    }
    每调一次read就读取一个字节,你在while中的read从来没有使用,但字节被读取掉了
      

  2.   

    ticmy能加你qq吗,如果不方便你加我我的qq是419295571,有问题请教你  谢谢
      

  3.   


    import java.io.*;public class TestBufferStream2 {
    public static void main(String[] args) {
    try {
    BufferedReader bw = new BufferedReader(new FileReader(
    "f:\\dat2.txt"));
    String str = bw.readLine();
    while (str != null) {
    System.out.println(str);
    str = bw.readLine();
    }
    bw.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }楼主试试这个!希望对你有帮助!