如果進行中文處理,首先想到的就是字元流,
并且想要完整的處理資料那麼一定需要緩沖區
緩沖區有兩種流:
·字元操作區流:BufferedReader、BufferedWriter
·字元緩沖區流:BufferedInputStream、BufferedOutputStream
//最重要的是BufferedReader,因為其類裡面有個最重要的方法
public String readLine() throws IOException
//讀取一行資料,以分隔符(換行)為界
//傳回的是String類型
//繼承結構
/*
*java.lang.Object
* -java.io.Reader
* -java.io.BufferedReader
*/
//構造方法
public BufferedReader(Reader in)
//鍵盤資料輸入的标準格式
//用BufferedReader類來處理System.in
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Nice {
public static void main(String[] args) throws Exception{
//System.in是InputStream類對象
//BufferedReader的構造方法裡面需要接受Reader類對象
//利用InputStreamReader将位元組流變成字元流
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("請輸入資料:");
String str = buf.readLine(); //以回車作為換行
System.out.print("輸入的内容為:" + str );
}
}
強調BufferedReader是因為傳回的是字元串,處理會比較友善;
//判斷輸出内容(正則)
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Nice {
public static void main(String[] args) throws Exception{
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
boolean flag = true; //編寫一個循環的邏輯
while (flag) {
System.out.print("請輸入年齡:");
String str = buf.readLine(); //以回車作為換行
if (str.matches("\\d{1,3}")) { //輸入資料是否由數字組成
System.out.println("年齡是:" + Integer.parseInt(str));
flag = false; //退出循環
} else {
System.out.println("年齡輸入錯誤,由數字組成");
}
}
}
}
//進行檔案的讀取(二進制資料不建議這樣讀取)
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class Nice {
public static void main(String[] args) throws Exception{
File file = new File("C:" + File.separator + "test.txt");
BufferedReader buf = new BufferedReader(new FileReader(file));
String str = null;
while((str = buf.readLine()) != null) {
System.out.println(str);
}
buf.close();
}
}
//與其他一些類相比,
//使用BufferedReader進行檔案資訊讀取的時候會比較友善