当前位置: 代码迷 >> J2SE >> 请教上关于FileReader里面的read方法
  详细解决方案

请教上关于FileReader里面的read方法

热度:5944   发布时间:2013-02-25 00:00:00.0
请问下关于FileReader里面的read方法
Java code
package com.yaxing.io;import java.io.FileReader;import java.io.IOException;public class FileReaderDemo {    /**     * @param args     */    public static void main(String[] args) {        FileReader fw = null;        try {            fw = new FileReader("c:\\w.txt");//            int ch = 0;//            while ((ch = fw.read()) != -1) {//                System.out.println("读取:" + (char) ch);//            }             while ((fw.read()) != -1) {                System.out.println("读取:" + (char)fw.read());            }        } catch (IOException e) {            e.printStackTrace();        } finally {            if (fw != null) {                try {                    fw.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }}


上面注释的部分读取,输出正常
而使用了下面的输出,则不正常,只输出了部分数据,为啥呢?
Java code
读取:s读取:c读取:1读取:3读取:


文本文件内容如下:
Java code
asdcr1231



Java code
while ((fw.read()) != -1) {                System.out.println("读取:" + (char)fw.read());            }


这里面两个 fw.read()的值不一样吗?
另外 直接输出 fw.read()这个输出的是啥呢?ascii码还是?

------解决方案--------------------------------------------------------
while ((fw.read()) != -1) { // 这里你已经读了一点数据了,但是没有输出。
System.out.println("读取:" + (char)fw.read());
}
------解决方案--------------------------------------------------------
探讨

while ((fw.read()) != -1) { // 这里你已经读了一点数据了,但是没有输出。
System.out.println("读取:" + (char)fw.read());
}
  相关解决方案