java學習筆記(九):Java 流(Stream)、文件(File)和IO
阿新 • • 發佈:2017-10-27
用戶輸入 public 文件內容 輸出流 out 單個 java 我們 ready
Java 的控制臺輸入由 System.in 完成。
為了獲得一個綁定到控制臺的字符流,你可以把 System.in 包裝在一個 BufferedReader 對象中來創建一個字符流。需要import一下這個包
import java.io.BufferedReader;
下面是創建 BufferedReader 的基本語法:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader 對象創建後,我們便可以使用 read() 方法從控制臺讀取一個字符,或者用 readLine() 方法讀取一個字符串。
實例:用 read() 方法從控制臺不斷讀取單個字符直到用戶輸入 "q"。
1 import java.io.*; 2 3 public class Test{ 4 public static void main(String[] args) throws IOException{ 5 char c; 6 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 7 System.out.println("輸入字符, 按下 ‘q‘ 鍵退出。");8 do { 9 c = (char)br.read(); 10 System.out.println(c); 11 } while (c != ‘q‘); 12 } 13 }
運行:
fffffg
f
f
f
f
f
g
實例:讀取和顯示字符行直到你輸入了單詞"end"。
1 import java.io.*; 2 3 public class Test{ 4 public static void main(String[] args) throws IOException{5 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 6 String str; 7 System.out.println("Enter lines of text."); 8 System.out.println("Enter ‘end‘ to quit."); 9 do { 10 str = br.readLine(); 11 System.out.println(str); 12 } while (!str.equals("end")); 13 } 14 }
運行:
aaaa
aaaa
bbbbb
bbbbb
end
end
讀寫文件
實例:InputStream 和 OutputStream 寫入讀取文件:
1 import java.io.*; 2 3 public class Test{ 4 public static void main(String[] args) throws IOException{ 5 /** 6 * 寫入文件 7 */ 8 File f = new File("test.txt"); 9 //構建FileOutputStream對象,文件不存在自動新建 10 FileOutputStream fop = new FileOutputStream(f); 11 //構建OutputStreamWriter對象,參數可以指定編碼默認編碼是Windows的gbk 12 OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8"); 13 //寫到緩沖區 14 writer.append("中文輸入:"); 15 //換行 16 writer.append("\r\n"); 17 //寫到緩沖區 18 writer.append("English"); 19 //close關閉寫入流,會將緩沖區的內容寫入到文件 20 writer.close(); 21 //關閉輸出流 22 fop.close(); 23 24 /** 25 * 讀出文件 26 */ 27 //構建FileInputStream對象 28 FileInputStream fip = new FileInputStream(f); 29 // 構建InputStreamReader對象,編碼與寫入相同 30 InputStreamReader reader = new InputStreamReader(fip, "UTF-8"); 31 //建立一個字符串StringBuffer對象 32 StringBuffer sb = new StringBuffer(); 33 while (reader.ready()){ 34 // 轉成char加到StringBuffer對象中 35 sb.append((char)reader.read()); 36 } 37 //輸出文件內容 38 System.out.println(sb.toString()); 39 //關閉讀取流 40 reader.close(); 41 //關閉輸入流,釋放系統資源 42 fip.close(); 43 } 44 }
運行輸出:
中文輸入:
English
java學習筆記(九):Java 流(Stream)、文件(File)和IO