程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-FileInputStream讀取文件不能讀取全部內容

java-FileInputStream讀取文件不能讀取全部內容

編輯:編程綜合問答
FileInputStream讀取文件不能讀取全部內容

最近在學習java的輸入流,用FileInputStream讀取文件不能讀取全部內容,都去的文件如下圖:


注意:文件只有3行!!!!

讀取的文件



在myeclipse中的輸入如下圖:

注意:輸出只有2行!!!!

輸出




實在找不出哪裡錯了,還請不吝賜教,非常感謝!

代碼如下:


package firPrj;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class FileReaderClass {
    public static void main(String []args){
        FileReaderClass fileReader = new FileReaderClass();

        System.out.println("readByByte:");
        fileReader.readByByte("c:\\file.txt");
    }

    private void readByByte(String fileName){
        InputStream in = null;
        try{
            in = new FileInputStream(fileName);

            int tem = -1;
            while((tem = in.read()) != -1){
                System.out.write(tem);
            }
        } catch(IOException e){
            e.printStackTrace();
        } finally{
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

最佳回答:


樓主。。你輸出的時候用的是System.out.write()方法,write()方法和print()方法的區別是一個輸出字符流,一個輸出字節流。
字符流有緩沖,即會把內容緩沖在內存中,只有flush()的時候才輸出。
所以你在while循環後面加個System.out.flush();即可全部輸出了。。
你可能會問為什麼前面兩行會輸出,這就要看write()的源碼了,你會發現 if ((b == '\n') && autoFlush){out.flush();}
至此真相大白了吧。。前兩行後面有換行所以會自動flush()

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved