黑马程序员技术交流社区

标题: 怎么执行结果是偶数位数的字符串? [打印本页]

作者: 尘埃落定    时间: 2014-5-31 16:34
标题: 怎么执行结果是偶数位数的字符串?
代码如下,
执行结果是:
sfhlluhlalnvlkjl
h orw ftewe

原文本内容是:
asdfghkl;lpuehgl;akldnfvnlakdjfl
the sorrows of the whe

为什么只读出了偶数位的字符串?


  1. import java.io.*;

  2. public class FileReaderDemo {

  3.         public static void main(String[] args) {
  4.                 // TODO Auto-generated method stub
  5.                
  6.                 FileReader fr = null;
  7.                 try{
  8.                         fr = new FileReader("demo.txt");//新建一个文件读取流对象,关联要读取的文件名。
  9.                        
  10.                         while(fr.read()!=-1){
  11.                                 System.out.print((char)fr.read());
  12.                         }       
  13.                 }
  14.                 //read()方法读取一个字符,每次读一个,会接着上一个往下读,若达到末尾,则返回-1.
  15.                
  16.                 catch(Exception e){
  17.                         System.out.println(e.toString());       
  18.                 }
  19.                 finally{
  20.                         try{
  21.                                 if(fr!=null)
  22.                                         fr.close();
  23.                         }
  24.                         catch(Exception e){
  25.                                 System.out.println(e.toString());
  26.                         }
  27.                 }
  28.         }

  29. }
复制代码



作者: 饥渴ing    时间: 2014-5-31 17:00
本帖最后由 饥渴ing 于 2014-5-31 17:02 编辑

你读了2次啊.

作者: 尘埃落定    时间: 2014-6-1 11:52
饥渴ing 发表于 2014-5-31 17:00
你读了2次啊.
  • while(fr.read()!=-1){  //这是你第一读的但是你没保存它

  • 按照你的方法改正后,结果没变,还是偶数位数的字符。:o
    作者: 饥渴ing    时间: 2014-6-1 11:57
    尘埃落定 发表于 2014-6-1 11:52
    按照你的方法改正后,结果没变,还是偶数位数的字符。

    你确定改了并且没加其他的read方法?
    作者: 尘埃落定    时间: 2014-6-1 12:01
    饥渴ing 发表于 2014-6-1 11:57
    你确定改了并且没加其他的read方法?

    是的,和你发给我的一样。
    你试运行下看看,结果发我。
    先谢谢了。
    作者: KevinSmart    时间: 2014-6-1 19:59
    1. import java.io.*;

    2. public class FileReaderDemo {

    3.         public static void main(String[] args) {
    4.                 // TODO Auto-generated method stub
    5.                
    6.                 FileReader fr = null;
    7.                 try{
    8.                         fr = new FileReader("demo.txt");//新建一个文件读取流对象,关联要读取的文件名。
    9.                         int num=0;
    10.                         while((num=fr.read())!=-1){
    11.                                 System.out.print((char)fr.read());
    12.                         }        
    13.                 }
    14.                 //read()方法读取一个字符,每次读一个,会接着上一个往下读,若达到末尾,则返回-1.
    15.                
    16.                 catch(Exception e){
    17.                         System.out.println(e.toString());        
    18.                 }
    19.                 finally{
    20.                         try{
    21.                                 if(fr!=null)
    22.                                         fr.close();
    23.                         }
    24.                         catch(Exception e){
    25.                                 System.out.println(e.toString());
    26.                         }
    27.                 }
    28.         }

    29. }
    复制代码



    作者: liang090214    时间: 2014-6-1 20:37
    学习学习。。。。
    作者: Ice丶wj    时间: 2014-6-2 09:29
      

    12.                        while(fr.read()!=-1){

    13.                                System.out.print((char)fr.read());

    两遍read方法
    作者: 尘埃落定    时间: 2014-6-2 23:10
    Ice丶wj 发表于 2014-6-2 09:29
    12.                        while(fr.read()!=-1){

    13.                                System.out ...

    恩,恩!!




    欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2