使用的類:BufferedReader,繼承Reader類
主要方法:
void |
close () 關閉該流。 |
void |
mark (int readAheadLimit) 標記流中的當前位置。 |
boolean |
markSupported () 判斷此流是否支持 mark() 操作(它一定支持)。 |
int |
read () 讀取單個字符。 |
int |
read (char[] cbuf, int off, int len) 將字符讀入數組的某一部分。 |
String |
readLine () 讀取一個文本行。 |
boolean |
ready () 判斷此流是否已准備好被讀取。 |
void |
reset () 將流重置為最新的標記。 |
long |
skip (long n) 跳過字符。 |
主要用到readLine方法來逐行文本內容
程序實例:
public void fileRead() throws Exception { File file = new File("D:\\test.txt");//定義一個file對象,用來初始化FileReader FileReader reader = new FileReader(file);//定義一個fileReader對象,用來初始化BufferedReader BufferedReader bReader = new BufferedReader(reader);//new一個BufferedReader對象,將文件內容讀取到緩存 StringBuilder sb = new StringBuilder();//定義一個字符串緩存,將字符串存放緩存中 String s = ""; while ((s =bReader.readLine()) != null) {//逐行讀取文件內容,不讀取換行符和末尾的空格 sb.append(s + "\n");//將讀取的字符串添加換行符后累加存放在緩存中 System.out.println(s); } bReader.close(); String str = sb.toString(); System.out.println(str ); }
遇到問題:
while循環中,直接使用(bReader.readLine()!=null),循環體內用s=bReader.readLine()賦值,
輸出發現跳行獲取的,每調用一次bReader.readLine()就會讀取一行,所以造成跳行顯示。