金英華 周園園




摘 要:隨著計算機的普及,人們無論生活,還是工作都離不開計算機的使用和操作。在線編輯文檔也顯得尤為重要,手動修改文檔費時,還容易出錯。本文設計了使用Java語言的InputStreamReader類的文本編輯系統,能夠批量地修改文字,提高了工作效率。
關鍵詞:辦公系統;InputStreamReader類;BufferedReader類;System.in
1、流(Stream)的定義
在語言程序設計使用時總是需要從鍵盤、文件的信息讀入操作,或是寫在顯示器、文件、打印機,網絡等設備的信息讀出操作。計算機處理數據都是以0與1的方式來進行的,兩個設備信息交流可以看成兩個端點數據傳輸,兩個端點之間進行數據的存取是以0與1的方式來進行的,Java將兩個端點(源點和終點)之間的數據流動抽象為一個流(Stream)的概念。
在Java語言中,“流”是用來聯系數據傳輸的源點與終點,與設備本身沒關的傳輸介質,它是對數據傳輸的一種抽象的描述。
2、數據流的類型
可以分為:字節流(Binary Stream),字符流(Character Stream)
字節流類都是InputStream和OutputStream類的子類,字節流類所操作的數據都是以一個字節(8位)的形式傳輸。InputStream流的派生類如圖1所示,OutputStream流的派生類如圖2所示。
字符流類都是Reader和Writer類的子類,字節流類所操作的數據都是以兩個字節(16位)的形式傳輸,因為Java的跨平臺特性和使用16位的Unicode字符集,使得字符流類在處理網絡程序中的字符時比字節流類更有優勢。Reader流的派生類如圖3所示,Writer流的派生類如圖4所示。
3、InputStreamReader類
InputStreamReader類是把字節流轉換成字符流的介質,它讀取字節流并將其轉換為對應的字符。每次調用InputStreamReader類的定義對象readLine()方法時,都是讀入字節流。為了提高程序的運行速度,通常將InputStreamReader類和BufferedReader類封裝在一起同時使用,例如:
InputStreamReader stdin=new InputStreamReader(System.in);
BufferedReader bufin=new BufferedReader(stdin);
或者
BufferedReader bufin =new BufferedReader (new InputStreamReader(System.in));
4、java.io包
在java.io包中,包含了InputStreamReader類,BufferedReader類、程序運行過程中可能產生的異常處理類和文件類,因此需要先導入java.io包,例如:
import java.io.*;
5、InputStreamReader流類的應用
本實例使用了字符輸入流類InputStreamReader和BufferedReader實現文字的編輯。
行號 Bangongxitong.java
1 import java.io.*;
2 public class Bangongxitong
3 {
4 ? public static void main(String args[])
5 ? ? {
6 ? ? ? String str1,str2,str3,str4;
7 ? ? ? InputStreamReader stdin=new InputStreamReader(System.in);
8 ? ? ? BufferedReader bufin=new BufferedReader(stdin);
9 ? ? ? try{
10 ? ? ? System.out.print("請輸入編輯的文字:");
11 ? ? ? str1=bufin.readLine();
12 ? ? ? System.out.print("請輸入要刪除的文字:");
13 ? ? ? str2=bufin.readLine();
14 ? ? ? int n=str1.indexOf(str2);
15 ? ? ? while (n!=-1)
16 ? ? ? {str3=str1.substring(0,n);
17 ? ? ? ?str4=str1.substring(n+str2.length());
18 ? ? ? ?str1=str3.concat(str4);
19 ? ? ? ?n=str1.indexOf(str2);
20 ? ? ? ?}
21 ? ? ? System.out.println("編輯后的內容:"+str1);
22 ? ? ? stdin.close();
23 ? ? ? bufin.close();
24 ? ? ? ? ?}
25 ? ? ? catch(IOException e)
26 ? ? ? {
27 ? ? ? System.out.println("發生I/O異常!!");
28 ? ? ? }
29 ? ? ?}
30 }
設計程序要實現的運行結果,如圖5所示:
參考文獻
[1]李卓玲.Java程序設計實用教程.大連理工大學出版社,2005.
[2] 遲勇.Java語言程序設計.大連理工大學出版社,2013.
[3] 遲勇.Java語言程序設計實驗及實訓指導.大連理工大學出版社,2013.
作者簡介:金英華,(1965.05),女,遼寧蓋縣,碩士研究生,副教授,研究方向:計算機軟件。