1. 程式人生 > >java學習筆記(九):Java 流(Stream)、文件(File)和IO

java學習筆記(九):Java 流(Stream)、文件(File)和IO

用戶輸入 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