所有的流在使用完畢時(shí),都需要調(diào)用close方法進(jìn)行關(guān)流,釋放資源。
由于流操作都會(huì)有異常,如果發(fā)生異常就有可能導(dǎo)致close方法不能被調(diào)用
所以,IO異常一定要處理,close方法寫(xiě)在finally語(yǔ)句中
1.InputStream : 輸入字節(jié)流 方法: read()從流(關(guān)聯(lián)的設(shè)備)中讀一個(gè)字節(jié)
** int read(buf):從流中讀取n個(gè)字節(jié)放入緩沖區(qū),方法會(huì)返回一個(gè)讀取字節(jié)的個(gè)數(shù) ips-->buf
讀到一個(gè)-1,說(shuō)明讀到了流的末尾
------------------------------------------------------------------------------------------
|---FileInputStream: 重載的構(gòu)造函數(shù) (String fileName) (File file)
2.OutputStream: 輸出字節(jié)流 :方法 write(int c)將一個(gè)字節(jié)寫(xiě)入流 (byte)c
write(buf,offset,len)將指定字節(jié)數(shù)組的一部分寫(xiě)入流。 buf-->ops
-------------------------------------------------------------------------------------------
|---FileOutputStream: 重載的構(gòu)造函數(shù) (Strng fileName) (String fileName, boolean append)
append:指定數(shù)據(jù)是否追加到文件的末尾,默認(rèn)是false,覆蓋原有的數(shù)據(jù),
設(shè)置為true,將數(shù)據(jù)追加到文件的末尾
3.Reader:輸入字符流 int read() 讀一個(gè)字符 int read(buf) buf是char[]類型
|---FileReader: FileReader = InputStreamReader(FileInputStream) 只做了一件事:解碼(父類在做)
4.Writer:輸出字符流 write(int c) (char)c \ write(String str)
|---|---FileWriter: FileWriter = OutputStreamWriter(FileOutputStream) 只做了一件事:編碼
理解(會(huì)用):
1.裝飾設(shè)計(jì)模式: 對(duì)原有的類的進(jìn)行包裝,對(duì)方法進(jìn)行增強(qiáng)
BufferedReader:實(shí)現(xiàn)緩沖的功能 創(chuàng)建包裝流對(duì)象的時(shí)候,必須組合一個(gè)被包裝的底層流
增加了一個(gè)新方法 String readLine() 讀一行
|--LineNumberReader: 增加了行號(hào)功能,getLineNumber() 、setLineNumber()
BufferedWriter:實(shí)現(xiàn)了緩沖功能 new BufferedWriter(new FileWriter("1.txt");
增加了新方法 newLine() 另起一行
BufferedInputStream:實(shí)現(xiàn)緩沖的功能
BufferedOutputStream:實(shí)現(xiàn)緩沖的功能
2.InputStreamReader: 轉(zhuǎn)換流 : 包裝,實(shí)現(xiàn)了編碼解碼的功能
new InputStreamReader(new FileInputStream("1.txt"));
3.使用包裝流包裝System.in,讀鍵盤方便,可以讀一行
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
IO需要會(huì)寫(xiě)的程序: BufferedReader和BufferedWriter包裝InputStream和OutputStream,讀一行寫(xiě)一行
BufferedReader和BufferedWriter包裝Reader和Writer
BufferedInputStream和BufferedOutputStream包裝InputStream和OutputStream
用基礎(chǔ)流讀寫(xiě),自定義數(shù)組作為緩沖區(qū),實(shí)現(xiàn)拷貝
-------以下做一個(gè)總結(jié):
io流:數(shù)據(jù)傳輸?shù)闹修D(zhuǎn)站-->IO流-->目的地
IO流一般都是成對(duì)出現(xiàn)的,也就是說(shuō)按照流的分向:輸入流-->輸出流
IO流按照操作來(lái)分: 字節(jié)流-->字符流
一.字符流
基類:Reader(讀)Writer(寫(xiě))
|-Reader
|--BufferedReader:對(duì)Reader進(jìn)行了包裝,提供了緩沖區(qū)(8192),有ReadLine()方法
構(gòu)造函數(shù):BufferedReader(Reader r);
|--InputStreamReader:轉(zhuǎn)換流:將字節(jié)流轉(zhuǎn)換成字符流:new InputStreamReader(System.in);
|--FileReader:讀取文件的字符流,FileReader(File file) FileReader(String fileName);
|-Writer
|--BufferedWriter:包裝流:常用的方法write(String s)、flush()刷新 newLine()換行
構(gòu)造函數(shù):BufferedWriter(Writer w);
|--OutputStreamWriter:轉(zhuǎn)換流: new OutputStreamWriter(System.out);
|--FileWriter:寫(xiě)入文件,FileWriter(File file) FileWriter(String fileName)
FileWriter(File file,boolean append),FileWriter(String fileName,boolean append)
當(dāng)append為true,將寫(xiě)入到文件的末尾處,當(dāng)為false時(shí),從文件開(kāi)頭開(kāi)始寫(xiě).就會(huì)覆蓋原來(lái)的.默認(rèn)為false
二.字節(jié)流:
|-InputStream(輸入流)
|--FileInputStream:讀取文件的字符流,和FileReader基本是一樣
|--FilterInputStream:過(guò)濾流,一般不使用,只是針對(duì)了InputStream進(jìn)行了包裝
|--BufferedInputStream:包裝類:BufferedReader(InputStream in),提供緩存功能
|-OutputStream(輸出流)
|--FileOutputStream:寫(xiě)入文件的字符流,和FileWriter基本一樣
|--FilterOutputStream
|--BufferedOutputStream:包裝類:BufferedWriter(OutputStream out);
三.使用IO流必須要捕獲異常,原因在于我們必須要還資源(關(guān)閉流)
1 FileWriter fw = null; 2 try 3 { 4 fw = new FileWriter("src/1.txt"); 5 } 6 catch(IOException e) 7 { 8 e.printStractTrace(); 9 } 10 finally 11 { 12 try{if(fw!=null)fw.close();}catch(IOException){e.printStackTrace();} 13 }
四.File文件類
1.構(gòu)造方法:
File(File parnt,String child)
根據(jù)prent抽象路徑名和child路徑名字符串創(chuàng)建一個(gè)新的file實(shí)例.
File(String pathname)
通過(guò)將給定的路徑名字來(lái)創(chuàng)建一個(gè)新的file實(shí)例.
File(String parent, String child)
根據(jù) parent 路徑名字符串和 child 路徑名字符串創(chuàng)建一個(gè)新 File 實(shí)例.
2.常用方法:
isFile:判斷對(duì)象是否是一個(gè)標(biāo)準(zhǔn)文件
isDirectory:判斷對(duì)象是否為一個(gè)文件夾
isAbsolute:判斷是否為一個(gè)絕對(duì)路徑
exists:判斷對(duì)象指定的文件是否存在
createNewFile:根據(jù)對(duì)象的描述創(chuàng)建一個(gè)對(duì)象
getName:獲得文件名
getPath:獲得路徑名
getParent:獲得文件的父級(jí)抽象路徑
getAbsolutepath:獲得文件的絕對(duì)路徑名
mkdir:創(chuàng)建此抽象路徑指定的目錄,(只能在存在的文件夾下創(chuàng)建一個(gè)目錄)
mkdirs:創(chuàng)建此抽象路徑指定的目錄,包括所有必須但不存在的目錄.創(chuàng)建多級(jí)目錄(c:/a/b/c)
list(FilenameFilter filter):根據(jù)指定過(guò)濾器遍歷文件夾中的所有文件,返回String[]
如果對(duì)象為標(biāo)準(zhǔn)文件,則返回null,如果對(duì)象是一個(gè)空文件夾,則返回空數(shù)組。length為0
FilenameFilter是一個(gè)接口,只有一個(gè)方法accept,我們需要實(shí)現(xiàn)接口的accept方法。
實(shí)現(xiàn)類是給list方法自動(dòng)調(diào)用的
方法的參數(shù)是list方法傳給我們的,返回的結(jié)果也是給list方法去用。
listFiles:和list基本一樣,返回值類型不一樣,返回File[]。
常用案例:遍歷目錄下所有的文件和文件夾 拷貝一個(gè)文件夾 .
五:RandomAccessFile 文件流,可以讀寫(xiě)
1.RandomAccessFile(File file,String mode)、RandomAccessFile(String fileName,String mode)
mode:常用的: r,只讀 rw讀寫(xiě)
2.有很多read和write方法.
seek方法,指定從那個(gè)位置開(kāi)始讀seek(0) ,從原有的位置覆蓋掉
skipBytes(int n):跳過(guò)多少個(gè)字節(jié)
六:PrintStream、PrintWriter打印流
有一個(gè)特殊的方法print可以實(shí)現(xiàn)打印
write方法是直接將字節(jié)和字符寫(xiě)出去
print:首先調(diào)用對(duì)象的toString方法轉(zhuǎn)成字符串(如果是基本數(shù)據(jù)類型,會(huì)先自動(dòng)裝箱)
再將字符串編碼成字節(jié)數(shù)組,調(diào)用write方法寫(xiě)出去
七:SequenceInputStream序列流
可以將多個(gè)字節(jié)流組合起來(lái)
構(gòu)造方法:SequenceInputStream(Enumeration<? extends InputStream> e)
//Enumeration可以通過(guò)Vector來(lái)獲得,如果用的是ArrayList,如何獲得呢?
SequenceInputStream(InputStream in1,InputStream in2)
八:ObjectInputStream、ObjectOutputStream操作對(duì)象的字節(jié)流
一般成對(duì)出現(xiàn)
使用writeObject方法寫(xiě)入的對(duì)象,只能由readObject方法讀出來(lái)
操作的對(duì)象必須實(shí)現(xiàn)java.io.Serializable序列化接口,該對(duì)象才可以被序列化和反序列化。
序列化: Java中規(guī)定的一種保存對(duì)象的數(shù)據(jù)格式
九:DataInputStream、DataOutputStream操作基本數(shù)據(jù)類型,格式化數(shù)據(jù)
readInt、writeInt等方法。
writeInt寫(xiě)入一個(gè)整數(shù),文件大小為4字節(jié)。證明就是把基本數(shù)據(jù)類型對(duì)應(yīng)的字節(jié)寫(xiě)出去了,沒(méi)有丟失精度
十:ByteArrayInputStream、ByteArrayOutputStream對(duì)Byte數(shù)組進(jìn)行讀寫(xiě)的字節(jié)流,針對(duì)內(nèi)存進(jìn)行讀寫(xiě)
源和目的地都是內(nèi)存,一般用于對(duì)內(nèi)存中的數(shù)據(jù)進(jìn)行處理。
十一:PipedInputStream、PipedOutputStream管道流
1、輸入管道流
構(gòu)造方法:PipedInputStream(PipedOutputStream pos)實(shí)現(xiàn)拼接
也可以通過(guò)connect(PipedOutputStream pos)方法進(jìn)行拼接
2、輸出管道流
構(gòu)造方法:PipedOutputStream(PipedInputStream pis)實(shí)現(xiàn)拼接
也可以通過(guò)connect(PipedInputStream pis)方法進(jìn)行拼接
1 --Test:序列化與反序列化.. 2 package com.java.kudy_Say; 3 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.ObjectOutputStream; 8 import java.io.Serializable; 9 import java.util.ArrayList; 10 import java.io.ObjectInputStream; 11 import java.io.FileInputStream; 12 /* 13 序列化與反序列化的過(guò)程 14 */ 15 public class Test { 16 17 public static void main(String[]args) throws FileNotFoundException, IOException,ClassNotFoundException 18 { 19 20 /* Student s1 = new Student("張三",18); 21 Student s2 = new Student("王五",19); 22 Student s3 = new Student("李四",20); 23 Student s4 = new Student("大毛",21); 24 ObjectOutputStream oos = 25 new ObjectOutputStream(new FileOutputStream("f:/a.txt")); 26 ArrayList<Student> al = new ArrayList<Student>(); 27 al.add(s1); 28 al.add(s2); 29 al.add(s3); 30 al.add(s4); 31 oos.writeObject(al); 32 oos.close();//關(guān)閉流 33 //首先我們把內(nèi)容放到一個(gè)集合里面去 34 */ 35 ObjectInputStream ois = 36 new ObjectInputStream(new FileInputStream("f:/a.txt")); 37 ArrayList<Student> al = (ArrayList<Student>)ois.readObject(); 38 for(Student s :al) 39 System.out.println(s); 40 ois.close(); 41 42 43 44 } 45 } 46 47 //必須要實(shí)現(xiàn)一個(gè)類 48 class Student implements Serializable 49 { 50 private String name; 51 private int age; 52 Student(){} 53 Student(String name,int age) 54 { 55 this.name = name; 56 this.age = age; 57 } 58 public String toString() 59 { 60 return name+"@"+age; 61 } 62 }
教程由JAVA中文網(wǎng)整理校對(duì)發(fā)布(javaweb.cc)
Abstract Window Toolkit(AWT)抽象窗口工具集
一個(gè)用本地圖形組件實(shí)現(xiàn)的圖形接口。這些組件提供了大部分的本地組件。這個(gè)接口正逐步被Swing組件所替代,參見(jiàn)Swing Set.
Abstract 抽象的
一個(gè)Java語(yǔ)言中的關(guān)鍵字,用在類的聲明中來(lái)指明一個(gè)類是不能被實(shí)例化的,但是可以被其它類繼承。一個(gè)抽象類可以使用抽象方法,抽象方法不需要實(shí)現(xiàn),但是需要在子類中被實(shí)現(xiàn)
abstract class 抽象類
含有一個(gè)或多個(gè)抽象方法的類,不能被實(shí)例化。定義抽象類的目的是使其他類能夠從它繼承,并且通過(guò)實(shí)現(xiàn)抽象方法使這個(gè)類具體化
abstract method 抽象方法
沒(méi)有實(shí)現(xiàn)的方法
access control 訪問(wèn)控制
控制用戶或程序訪問(wèn)資源的權(quán)限,保證資源的一致性的方法
API 應(yīng)用程序接口
Application Programming Interface的縮寫(xiě)。指導(dǎo)應(yīng)用程序開(kāi)發(fā)人員訪問(wèn)類方法和類狀態(tài)的說(shuō)明
applet 小應(yīng)用程序
通常在Web瀏覽器中執(zhí)行的一個(gè)Java組件,同樣可以在其他的支持applet模型的應(yīng)用程序或設(shè)備中執(zhí)行
Applet container applet容器
一個(gè)支持applet的容器
argument 參數(shù)
在函數(shù)調(diào)用中使用的數(shù)據(jù)項(xiàng)。一個(gè)參數(shù)可以是常量、變量或表達(dá)式
array 數(shù)組
相同類型的數(shù)據(jù)的集合,每一個(gè)數(shù)據(jù)項(xiàng)通過(guò)一個(gè)整數(shù)唯一標(biāo)識(shí)
ASCII
American Standard Code for Information Interchange的縮寫(xiě)。一個(gè)標(biāo)準(zhǔn)的7位字符編碼,參見(jiàn)Unicode
Bean
一個(gè)可以重用的組件,可以通過(guò)組合Bean來(lái)創(chuàng)建應(yīng)用程序
bean-managed persistence
當(dāng)一個(gè)實(shí)體bean實(shí)例和資源管理器交換數(shù)據(jù)的時(shí)候,由實(shí)體bean實(shí)例來(lái)管理
bean-managed transaction
Enterprise Bean定義事務(wù)的界限的時(shí)候
binary operator 二值操作符
有兩個(gè)操作數(shù)的操作符
bit 位
計(jì)算機(jī)中表示信息的最小單位,只有0和1兩個(gè)值
bitwise operator 位操作符
并行的對(duì)一個(gè)或多個(gè)操作數(shù)的位進(jìn)行單獨(dú)的操作。比如二進(jìn)制邏輯運(yùn)算符(&,|,^),二進(jìn)制移位符(<<,>>,>>>)和求補(bǔ)運(yùn)算符(~)
block 塊
在Java語(yǔ)言中,任何被大括號(hào)括起來(lái)的程序段。
boolean 邏輯型
指一個(gè)表達(dá)式或一個(gè)變量只能有true或者false兩種類型。Java語(yǔ)言提供了boolean類型以及true和false兩個(gè)常量
break
一個(gè)Java的關(guān)鍵字,用來(lái)改變程序執(zhí)行流程,立刻從當(dāng)前語(yǔ)句的下一句開(kāi)始執(zhí)行從。如果后面跟有一個(gè)標(biāo)簽,則從標(biāo)簽對(duì)應(yīng)的地方開(kāi)始執(zhí)行
business logic 商業(yè)邏輯
實(shí)現(xiàn)某個(gè)應(yīng)用功能的代碼。在Enterprise JavaBeans模型中,這種邏輯是由某個(gè)Enterprise Javabean的方法實(shí)現(xiàn)的。
business method 商業(yè)方法
某個(gè)Enterprise Javabean的方法用來(lái)實(shí)現(xiàn)商業(yè)邏輯或者某個(gè)應(yīng)用的規(guī)則。
Byte 字節(jié)
順序的8位bit,Java語(yǔ)言中有對(duì)應(yīng)的byte類型
bytecode 字節(jié)碼
由Java編譯器生成的跟機(jī)器相關(guān)代碼,由Java解釋器執(zhí)行
callback methods 回調(diào)方法
組件的方法,由存放該組件的容器來(lái)調(diào)用的,用來(lái)在組件生命周期中通知它重要的事件
case
Java語(yǔ)言的關(guān)鍵字,用來(lái)定義一組分支選擇,如果某個(gè)值和switch中給出的值一樣,就會(huì)從該分支開(kāi)始執(zhí)行。
casting
強(qiáng)制類型轉(zhuǎn)化換
catch
Java的一個(gè)關(guān)鍵字,用來(lái)聲明當(dāng)try語(yǔ)句塊中發(fā)生運(yùn)行時(shí)錯(cuò)誤或非運(yùn)行時(shí)異常時(shí)運(yùn)行的一個(gè)塊。
char
Java語(yǔ)言的一個(gè)關(guān)鍵字,用來(lái)定義一個(gè)字符類型
class 類
在Java語(yǔ)言中定義一個(gè)特定類的實(shí)現(xiàn)。一個(gè)類的定義包含成員變量,成員方法,還有這個(gè)類實(shí)現(xiàn)的接口,以及這個(gè)類的父類。如果沒(méi)有顯式指明父類,那么它的父類會(huì)隱式的被認(rèn)為是Object。
class method 類方法
不需要引用特定對(duì)象就可以使用的方法,類方法的作用域是全局的,而不是某個(gè)特定的類實(shí)例,也被稱作靜態(tài)方法static method,參看instance method
classpath 類路徑
Classpath是一個(gè)環(huán)境變量,用來(lái)向Java虛擬機(jī)和基于Java的應(yīng)用程序指明系統(tǒng)類庫(kù)和用戶類庫(kù)的位置(比如,工具包在JDK1.1.X/bin目錄中)
class variable 類變量
一個(gè)和整個(gè)類相關(guān)的數(shù)據(jù)項(xiàng),而不是只和某個(gè)實(shí)例,類變量在類定義中定義,也被稱作static field,參看instance variable.
codebase
和<APPLET>標(biāo)簽中的Code屬性配合給出找到applet類的完整路徑:Code給出文件的名字,Codebase指出包含該文件的URL路徑
comment 注釋
在編程語(yǔ)言中被編譯器忽略的解釋性語(yǔ)句。在Java中注釋使用//或/*…*/定界
compiler 編譯器
一個(gè)把源代碼翻譯成機(jī)器可以執(zhí)行的代碼的程序。Java編譯器把Java源碼翻譯成Java虛擬機(jī)能夠識(shí)別的字節(jié)碼,參見(jiàn)interpreter
component 組件
一種被容器所支持的應(yīng)用級(jí)的軟件單元。組件在使用的時(shí)候是可配置的。J2EE平臺(tái)定義了四種類型的組件:Enterprise Bean,Web components,applets和application client。
component contract
組件和它的容器之間的規(guī)范。這種規(guī)范包括:組件的生命周期的管理,一個(gè)上下文的接口,組件可以通過(guò)它獲得容器的信息和服務(wù),以及每個(gè)容器必須提供的一系列服務(wù)。
component environment
應(yīng)用程序組件提供商定義的一個(gè)集合,使組件在J2EE組件的名字空間中可見(jiàn)。環(huán)境選項(xiàng)由組件的使用描述符指明。每一個(gè)組件命名并訪問(wèn)它的環(huán)境配置值通過(guò)使用java:comp/evn JNDI上下文。這些值可以是組件所依賴的一個(gè)對(duì)象,比如JDBC DataSouce,或者一個(gè)簡(jiǎn)單值,比如一個(gè)稅率。
Connector 連接器
一個(gè)標(biāo)準(zhǔn)的擴(kuò)充機(jī)制使容器可以提供到EISs的連接。一個(gè)連接器連接到特定的EIS,由資源適配器和針對(duì)EIS的應(yīng)用開(kāi)發(fā)工具組成。一個(gè)資源適配器插入到一個(gè)容器通過(guò)在連接器體系結(jié)構(gòu)中定義的系統(tǒng)級(jí)的聯(lián)系。
connector architecture
一個(gè)集成J2EE和EISs的體系結(jié)構(gòu)。這個(gè)體系結(jié)構(gòu)中有兩大部分:一個(gè)EIS廠商提供的資源適配器和一個(gè)允許這個(gè)適配器插入的J2EE服務(wù)器。這個(gè)體系結(jié)構(gòu)定義了一系列資源適配器為了能插入J2EE服務(wù)器而必須支持的規(guī)范,比如事務(wù),安全,資源管理。
Constructor 構(gòu)造函數(shù)
一個(gè)創(chuàng)建對(duì)象的偽方法。在Java語(yǔ)言中構(gòu)造函數(shù)是和類同名的成員函數(shù)。構(gòu)造函數(shù)一般用在new操作符之后。
Container 容器
一個(gè)為組件提供生命周期管理,安全,配置,和運(yùn)行時(shí)服務(wù)的實(shí)體。每一個(gè)類型的容器(EJB, Web, JSP, servlet, applet, 和application client)也會(huì)提供各自組件相關(guān)的服務(wù)
container-managed persistence
當(dāng)一個(gè)實(shí)體bean實(shí)例和資源管理器交換數(shù)據(jù)的時(shí)候,由資源管理器來(lái)管理
container-managed transaction
當(dāng)一個(gè)EJB容器定義一個(gè)事務(wù)的邊界的時(shí)候,一個(gè)Bean必須使用這種事務(wù)類型
continue
一個(gè)Java的關(guān)鍵字,用來(lái)打斷當(dāng)前循環(huán)過(guò)程,從當(dāng)前循環(huán)的最后重新開(kāi)始執(zhí)行,如果后面跟有一個(gè)標(biāo)簽,則從標(biāo)簽對(duì)應(yīng)的地方開(kāi)始執(zhí)行。
core class 核心類
一個(gè)Java平臺(tái)上的標(biāo)準(zhǔn)的公共類或接口。Java平臺(tái)的核心類,至少在所有的能支持Java的操作系統(tǒng)的平臺(tái)上都是可用的。一個(gè)完全用Java編寫(xiě)的程序只需要Java核心類就可以運(yùn)行了,這意味著它能夠在任何地方運(yùn)行,參看100% Pure Java(TM).
Core Packages 核心包
在任何Java平臺(tái)和任何兼容平臺(tái)上必須被支持的API的集合。
Declaration 聲明
一個(gè)在標(biāo)識(shí)符和屬性之間建立聯(lián)系的語(yǔ)句,不需要必要的存儲(chǔ)分配或具體實(shí)現(xiàn)。參見(jiàn)definition
default 缺省的
一個(gè)Java語(yǔ)言的關(guān)鍵字,作為在switch語(yǔ)句中的所有case之后的可選項(xiàng),如果所有的case條件都沒(méi)有被滿足,就會(huì)執(zhí)行default語(yǔ)句
delegation 授權(quán)
一種某個(gè)負(fù)責(zé)人批準(zhǔn)另外一個(gè)負(fù)責(zé)人在一定限制下使用它的身份或特權(quán)的行為
deprecation
指不再推薦的類,接口,構(gòu)造函數(shù),方法或成員變量,可能在以后的版本中會(huì)消失
derived from
類X "derived from" 類Y就是指類X是從類Y繼承過(guò)來(lái)的,參見(jiàn)subclass, superclass
distributed 分布的
在多于一個(gè)的地址空間內(nèi)運(yùn)行
distributed application 分布式應(yīng)用
由不同的運(yùn)行于分離的運(yùn)行環(huán)境下的組件構(gòu)成的應(yīng)用程序,通常是在不同的平臺(tái)上通過(guò)網(wǎng)絡(luò)互聯(lián)起來(lái)。典型的分布式應(yīng)用是二端(Client/Server),三端(client/middleware/server)和n端(client/multiple middleware/multiple server)
do
一個(gè)Java語(yǔ)言的關(guān)鍵字,用來(lái)聲明一個(gè)循環(huán),這個(gè)循環(huán)的結(jié)束條件可以通過(guò)while關(guān)鍵字設(shè)置
DOM
Document Object Model的縮寫(xiě)。一棵由擁有包含遍歷這棵樹(shù)并且生成相應(yīng)XML文檔的接口的對(duì)象構(gòu)成的樹(shù),符合W3C的規(guī)范
double
一個(gè)Java語(yǔ)言的關(guān)鍵字,用來(lái)定義一個(gè)double類型的變量
EJB container EJB容器
一個(gè)實(shí)現(xiàn)了J2EE體系結(jié)構(gòu)中EJB組件規(guī)范的容器。這個(gè)規(guī)范指定了一個(gè)Enterprise bean的運(yùn)行時(shí)環(huán)境,包括安全,一致性,生命周期,事務(wù),配置,和其他的服務(wù)。一個(gè)EJB容器可以由EJB或者J2EE服務(wù)器提供。
EJB Container Provider EJB容器提供商
提供EJB容器的廠商
EJB context EJB上下文
一個(gè)允許Enterprise Bean使用容器提供的服務(wù)和獲得客戶-請(qǐng)求(client-invoke)方法調(diào)用者信息的對(duì)象
EJB home object
一個(gè)提供關(guān)于Enterprise Bean生命周期操作(創(chuàng)建,刪除,查找)的對(duì)象。這個(gè)對(duì)象的類型是由容器的配置工具產(chǎn)生的。EJB home object實(shí)現(xiàn)了Enterpeise Bean的home接口。客戶通過(guò)引用一個(gè)EJB home object來(lái)進(jìn)行生命周期的操作??蛻羰褂肑NDI來(lái)定位一個(gè)EJB home object
EJB .jar file
一個(gè)包含EJB模塊的JAR文件
EJB module
一個(gè)由一個(gè)或多個(gè)Enterprise bean和一個(gè)EJB配置描述符組成的軟件單元。
EJB object
實(shí)現(xiàn)了enterprise bean的remote接口的對(duì)象??蛻舨荒苤苯右靡粋€(gè)enterprise bean的實(shí)例;客戶總是引用一個(gè)EJB object。EJB object的類型是由容器的配置工具生成的。
EJB server
為EJB容器提供服務(wù)的軟件。比如,典型的,一個(gè)EJB容器總是依靠一個(gè)作為EJB Server一部分的事務(wù)管理器來(lái)進(jìn)行雙向的確認(rèn)在所有參與的資源管理器之間。J2EE體系結(jié)構(gòu)假設(shè)EJB容器和EJB Server是由同一廠商提供的,所以沒(méi)有制定這兩個(gè)實(shí)體之間的規(guī)范。一個(gè)EJB Server可以包含一個(gè)或多個(gè)EJB Container
EJB Server Provider
提供EJB Server的廠商
EIS resource
一個(gè)為客戶提供符合EIS規(guī)范的功能的實(shí)體。例子有:一條或多條數(shù)據(jù)庫(kù)中的記錄,在一個(gè)ERP系統(tǒng)中的一個(gè)business object,在一個(gè)事務(wù)處理系統(tǒng)中的一個(gè)事務(wù)程序
else
一個(gè)Java語(yǔ)言的關(guān)鍵字,如果if語(yǔ)句的條件不滿足就會(huì)執(zhí)行該語(yǔ)句。
encapsulation 封裝
一個(gè)模塊中的內(nèi)部屬性,因?yàn)閷?duì)象會(huì)封裝數(shù)據(jù)和實(shí)現(xiàn),使用者可以把對(duì)象看作一個(gè)能提供服務(wù)的黑匣子。實(shí)例變量可以被添加,刪除,或改變。只要這個(gè)對(duì)象所提供的服務(wù)是不變的,使用這個(gè)對(duì)象的代碼就可以繼續(xù)使用而不需要修改,參見(jiàn)instance variable, instance method.
enterprise bean
實(shí)現(xiàn)商業(yè)任務(wù)和商業(yè)實(shí)體的組件;或者是一個(gè)entity bean,或者是一個(gè)session bean
Enterprise Information System (EIS)
一個(gè)包含企業(yè)已經(jīng)存在的獲取企業(yè)級(jí)信息的系統(tǒng)的應(yīng)用程序,這些應(yīng)用程序?yàn)槠髽I(yè)提供了一個(gè)信息結(jié)構(gòu)。一個(gè)EIS系統(tǒng)提供很好定義的服務(wù)的集合給它的客戶。這些服務(wù)在客戶看來(lái)是本地的和/或者遠(yuǎn)程的接口。EIS的例子有:一個(gè)ERP系統(tǒng),一個(gè)事務(wù)處理系統(tǒng)的主框架,一個(gè)遺留的數(shù)據(jù)庫(kù)系統(tǒng)。
Enterprise Bean Provider Enterprise Bean提供商
生產(chǎn)enterprise bean,remote和home接口,配置描述符文件,并把這些打包入JAR文件的應(yīng)用程序開(kāi)發(fā)人員
Enterprise JavaBeans(TM) (EJB)
一個(gè)用于開(kāi)發(fā)和使用面向?qū)ο蟮模植际降模髽I(yè)級(jí)應(yīng)用程序的組件體系結(jié)構(gòu)。使用Enterprise JavaBeans體系結(jié)構(gòu)編寫(xiě)的軟件是可擴(kuò)展的,面向事務(wù)的,多用戶的,安全的。
entity bean
一個(gè)代表由數(shù)據(jù)庫(kù)維護(hù)的持久數(shù)據(jù)的enterprise bean。一個(gè)entity bean可以管理它自己的持久性,或者把這個(gè)功能授權(quán)給它的容器。一個(gè) entity bean由一個(gè)主鍵來(lái)標(biāo)識(shí)。如果存放entity bean的容器崩潰了,那么這個(gè)entity bean,它的主鍵,以及任何遠(yuǎn)程的引用都能從崩潰中幸存下來(lái)。
ebXML
ebXML建立在XML(Extensive Markup Language)之上,目的是提供一系列模塊化的規(guī)范,使任何地方的任何規(guī)模的企業(yè)都能夠通過(guò)Internet指導(dǎo)商業(yè)活動(dòng)。它提供了公司和組織一個(gè)標(biāo)準(zhǔn)的方法來(lái)交換數(shù)據(jù),指導(dǎo)商業(yè)關(guān)系,交流數(shù)據(jù)通過(guò)公共的形式,定義并注冊(cè)商業(yè)過(guò)程
exception 異常
一個(gè)在程序執(zhí)行過(guò)程中阻止程序正常執(zhí)行的事件,通常是一個(gè)錯(cuò)誤。Java語(yǔ)言通過(guò)try,catch和throw關(guān)鍵字支持異常的處理,參見(jiàn)exception
handler
exception handler
一段處理特定類型的異常的代碼。如果程序能夠從異常中恢復(fù)過(guò)來(lái),那么在處理完異常之后程序可以繼續(xù)執(zhí)行。
executable content
在HTML文件中執(zhí)行的應(yīng)用程序,參見(jiàn)applet。
extends 繼承
類X 通過(guò)extend 類Y來(lái)添加功能,或者添加變量,或者添加方法,或者覆蓋類Y的方法。一個(gè)接口extends另外一個(gè)接口來(lái)添加方法。類X稱為類Y的一個(gè)子類,參見(jiàn)derived from
field 域
一個(gè)類的數(shù)據(jù)成員。除非顯式指明,否則一個(gè)field不是static的
final
一個(gè)Java語(yǔ)言的關(guān)鍵字。你只能定義一個(gè)實(shí)體一次,以后不能改變它或繼承它。更嚴(yán)格的講:一個(gè)final修飾的類不能被子類化,一個(gè)final修飾的方法不能被重寫(xiě),一個(gè)final修飾的變量不能改變其初始值。
finally
一個(gè)Java語(yǔ)言的關(guān)鍵字,用來(lái)執(zhí)行一段代碼不管在前面定義的try語(yǔ)句中是否有異?;蜻\(yùn)行時(shí)錯(cuò)誤發(fā)生。
float
一個(gè)Java語(yǔ)言的關(guān)鍵字,用來(lái)定義一個(gè)浮點(diǎn)數(shù)變量
for
一個(gè)Java語(yǔ)言的關(guān)鍵字,用來(lái)聲明一個(gè)循環(huán)。程序員可以指定要循環(huán)的語(yǔ)句,推出條件和初始化變量。
FTP
基本的Internet文件傳輸協(xié)議(File Transfer Protocol)。FTP是基于TCP/IP協(xié)議的,它允許在主機(jī)之間通過(guò)Internet傳送文件。參見(jiàn)TCP/IP
formal parameter list
在一個(gè)方法的定以中指定的參數(shù)。參見(jiàn)actual parameter list
handle
一個(gè)標(biāo)識(shí)enterprise bean的對(duì)象??蛻艨梢源谢痟andle,以后從串行化中恢復(fù)handle來(lái)得到一個(gè)對(duì)enterprise bean的引用
hexadecimal 十六進(jìn)制的
使用16作為基的計(jì)數(shù)系統(tǒng)。記號(hào)0-9和a-f(或者A-F)代表了數(shù)字0到15。在Java中16進(jìn)制數(shù)必須帶有0x前綴。參見(jiàn)octal
hierarchy
關(guān)系的一種分類,除了最高層的對(duì)象(通常稱作root),每一個(gè)對(duì)象有一個(gè)專門的上層對(duì)象。每個(gè)對(duì)象可以由一個(gè)或多個(gè)下層對(duì)象在層次關(guān)系中。在Java中,root對(duì)象是Object
home interface
enterprise bean兩個(gè)接口中的一個(gè)。home接口定義了0個(gè)或多個(gè)方法來(lái)創(chuàng)建和刪除一個(gè)enterprise bean。對(duì)于session bean,home接口定義了創(chuàng)建和刪除方法,然而對(duì)于entity bean,home接口定義了創(chuàng)建,查找和刪除的方法。
home handle
一個(gè)對(duì)象,能夠用來(lái)得到對(duì)一個(gè)home接口的引用。一個(gè)home handle能夠被串行化寫(xiě)入持久存儲(chǔ)器中,通過(guò)反串行化來(lái)得到這個(gè)引用。
HTML
HyperText Markup Language的縮寫(xiě)。這是一個(gè)文件格式,基于SGML,為了超文本在Internet上的傳輸。它十分簡(jiǎn)單,允許嵌入圖片,聲音,視頻流,表單域和簡(jiǎn)單的文本格式。對(duì)其他對(duì)象的引用被嵌入到URLs中。
HTTP
HyperText Transfer Protocol的縮寫(xiě)。Internet的協(xié)議,基于TCP/IP,用來(lái)獲得遠(yuǎn)程主機(jī)上的超文本。參見(jiàn)TCP/IP。
HTTPS
建立在SSL協(xié)議之上的超文本傳輸協(xié)議(HTTP)
IDL
接口定義語(yǔ)言(Interface Definition Language)的縮寫(xiě),使用Java(TM)編寫(xiě)的API提供基于標(biāo)準(zhǔn)的和CORBA的交互性和連接性。
identifier 標(biāo)識(shí)符
在Java程序中一個(gè)對(duì)象的名稱
IIOP
Internet Inter-ORB Protocol的縮寫(xiě)。一個(gè)用來(lái)在CORBA對(duì)象請(qǐng)求代理之間交流的協(xié)議。
if
Java編程語(yǔ)言的一個(gè)關(guān)鍵字,用來(lái)生成一個(gè)條件測(cè)試,如果條件為真,就執(zhí)行if下的語(yǔ)句。
implements
Java(TM)編程語(yǔ)言的一個(gè)關(guān)鍵字,在類的聲明中是可選的,用來(lái)指明當(dāng)前類實(shí)現(xiàn)的接口。
import
Java(TM)編程語(yǔ)言的一個(gè)關(guān)鍵字,在源文件的開(kāi)始部分指明后面將要引用的一個(gè)類或整個(gè)包,這樣就不必在使用的時(shí)候加上包的名字。
inheritance 繼承
一個(gè)概念:一個(gè)類型會(huì)自動(dòng)包含其父類型(supertypes)的變量和方法。參見(jiàn)superclass, subclass。
initialization parameter
初始化Servlet上下文的參數(shù)。
instance 實(shí)例
一個(gè)特定類型的對(duì)象。在Java(TM)語(yǔ)言中,一個(gè)對(duì)象是由new操作符創(chuàng)建的。
instance method 實(shí)例方法
任何跟一個(gè)類的實(shí)例相關(guān)的方法,也稱作method。參見(jiàn)class method。
instance variable 實(shí)例變量
任何和一個(gè)特定對(duì)象相關(guān)的數(shù)據(jù)項(xiàng)。每一個(gè)類的實(shí)例有一份類定義中聲明的實(shí)例變量的拷貝,也稱作field。參見(jiàn)class variable。
instanceof
一個(gè)二操作數(shù)的Java(TM)語(yǔ)言關(guān)鍵字,用來(lái)測(cè)試第一個(gè)參數(shù)的運(yùn)行時(shí)類型是否和第二個(gè)參數(shù)兼容。
int
Java(TM)的一個(gè)關(guān)鍵字,用來(lái)定義一個(gè)整形變量
interface
Java(TM)的一個(gè)關(guān)鍵字,用來(lái)定義一系列的方法和常量。它可以被類實(shí)現(xiàn),通過(guò)implements關(guān)鍵字。
Internet
一個(gè)由全球各個(gè)組織,各個(gè)國(guó)家的數(shù)百萬(wàn)的主機(jī)組成的巨大的一個(gè)網(wǎng)絡(luò)。它是由很多小網(wǎng)絡(luò)物理的連接在一起而成的,數(shù)據(jù)通過(guò)公共的一組協(xié)議傳輸。
IP
Internet Protocol的縮寫(xiě),Internet的基本協(xié)議,它提供不可靠的主機(jī)間的數(shù)據(jù)包的傳送。它不保證是否數(shù)據(jù)包能夠正確傳送,需要多久的時(shí)間來(lái)傳送,或者當(dāng)有多個(gè)包時(shí)是否按順序到達(dá)。建立在該協(xié)議之上的協(xié)議提供連接和可靠性的概念。參見(jiàn) TCP/IP.
interpreter 解釋器
一個(gè)可選解碼并且執(zhí)行代碼中的每一句語(yǔ)句的模塊。Java(TM)解釋器解碼并執(zhí)行為符合Java虛擬機(jī)規(guī)范的字節(jié)碼。參見(jiàn)compiler, runtime system。
ISV
Independent Software Vendor的縮寫(xiě)
本篇文章來(lái)自Java中文網(wǎng):http://javaweb.cc/other/english/2212.shtml
教程由JAVA中文網(wǎng)整理校對(duì)發(fā)布(javaweb.cc)
J2EE application
任何可配置的J2EE功能單元??赡苁怯梢粋€(gè)或多個(gè)軟件模塊與一個(gè)J2EE應(yīng)用程序配置描述符打包成.ear文件。J2EE應(yīng)用程序通常設(shè)計(jì)成在多機(jī)環(huán)境下運(yùn)行的分布式應(yīng)用。
J2EE product
一個(gè)遵循J2EE平臺(tái)規(guī)范的實(shí)現(xiàn)。
J2EE Product Provider
提供J2EE產(chǎn)品的生產(chǎn)商。
J2EE server
J2EE Product的運(yùn)行時(shí)部分。一個(gè)J2EE提供Web和/或EJB容器。
JAE
Java(TM) Application Environment的縮寫(xiě)。Java Development Kit (JDK(TM))的源代碼。
JAR Files (.jar)
Java ARchive的縮寫(xiě)。一種把許多文件聚合到一個(gè)文件的一種文件格式。
JAR file format
JAR是一種把許多文件聚合到一個(gè)文件的平臺(tái)無(wú)關(guān)一種文件格式。許多個(gè)用Java編寫(xiě)的applet以及它們所需要的組件(.class文件,圖片,聲音和其他資源文件)能夠被打包到一個(gè)JAR文件中,以便以后在單獨(dú)一個(gè)HTTP請(qǐng)求中就能夠下載到客戶端。它同樣支持文件壓縮和數(shù)字簽名。
Java(TM)
是Sun公司的商標(biāo),標(biāo)識(shí)了一系列在獨(dú)立的和網(wǎng)絡(luò)化的環(huán)境中創(chuàng)建并安全的運(yùn)行程序的技術(shù)。
Java Application Environment (JAE)
Java Development Kit (JDK(TM))的源代碼。
Java(TM) 2 Platform, Standard Edition (J2SE platform)
核心的Java技術(shù)平臺(tái)
Java(TM) 2 Platform, Enterprise Edition (J2EE platform)
一個(gè)用來(lái)開(kāi)發(fā)和配置企業(yè)應(yīng)用程序的環(huán)境。J2EE平臺(tái)由一系列的服務(wù),應(yīng)用程序接口(APIs)和提供開(kāi)發(fā)多級(jí)的,基于Web的功能的協(xié)議組成。
Java(TM) 2 SDK, Enterprise Edition
Sun公司的對(duì)J2EE平臺(tái)的一個(gè)實(shí)現(xiàn)。這個(gè)實(shí)現(xiàn)提供了一個(gè)可操作的J2EE平臺(tái)的定義。
JavaBeans(TM)
一個(gè)可移植的,平臺(tái)無(wú)關(guān)的,可重用的組件模型。
Java Blend(TM)
一個(gè)通過(guò)映射數(shù)據(jù)庫(kù)數(shù)據(jù)到Java編程環(huán)境中的對(duì)象(Object)和映射對(duì)象到數(shù)據(jù)庫(kù)使程序員能夠簡(jiǎn)化數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)的產(chǎn)品。
Java Card(TM) API
一個(gè)和ISO 7816-4兼容的應(yīng)用開(kāi)發(fā)環(huán)境,集中在smart card上。
JavaCheck(TM)
一個(gè)工具,用來(lái)檢查一個(gè)應(yīng)用程序或一個(gè)applet是否符合某個(gè)規(guī)范。
Java(TM) Compatibility Kit (JCK)
一個(gè)測(cè)試包,一組工具,和其它的一些需求,用來(lái)檢查一個(gè)實(shí)現(xiàn)是否和Java平臺(tái)規(guī)范和軟件參考實(shí)現(xiàn)兼容。
Java Database Connectivity (JDBC(TM))
一個(gè)Java平臺(tái)和大量數(shù)據(jù)庫(kù)平臺(tái)之間互聯(lián)的平臺(tái)無(wú)關(guān)的工業(yè)標(biāo)準(zhǔn)。JDBC(TM)提供了調(diào)用級(jí)的API來(lái)操作支持SQL語(yǔ)言的數(shù)據(jù)庫(kù)。
Java Developer Connection(SM)
一個(gè)為個(gè)人開(kāi)發(fā)者設(shè)計(jì)的服務(wù),提供在線訓(xùn)練,產(chǎn)品打折,專題文章,錯(cuò)誤信息和一些早期的版本兼容性信息。
Java Development Kit (JDK(TM))
一個(gè)軟件開(kāi)發(fā)平臺(tái),支持使用Java語(yǔ)言編寫(xiě)Applet或應(yīng)用程序。
Java(TM) Enterprise API
這個(gè)API使編寫(xiě)大型的,可能在一個(gè)組織中或Internet上與其它應(yīng)用程序共享多媒體數(shù)據(jù)的商業(yè)或數(shù)據(jù)庫(kù)應(yīng)用程序變得簡(jiǎn)單。在Java(TM)
Enterprise API家族中已經(jīng)有四個(gè)APIs被設(shè)計(jì)出來(lái)。
Java(TM) Foundation Classes (JFC)
一個(gè)擴(kuò)展,把圖形用戶接口加入到抽象窗口工具集(AWT)中。
Java(TM) IDL
一個(gè)提供J2EE平臺(tái)與CORBA交互能力和互聯(lián)能力的技術(shù)。這些兼容性使J2EE應(yīng)用程序能夠通過(guò)OMG IDL和IIOP調(diào)用遠(yuǎn)程網(wǎng)絡(luò)上的操作。
Java(TM) Interface Definition Language (IDL)
用Java編寫(xiě)的APIs,提供標(biāo)準(zhǔn)化的與CORBA(Common Object Request Broker Architecture)的交互能力和互聯(lián)能力。
Java(TM) Message Service (JMS)
使用企業(yè)級(jí)消息系統(tǒng)的API,比如IBM MQ Series,TIBCO Reanezvous等。
Java Naming and Directory Interface(TM) (JNDI)
一組用來(lái)提供多重命名和目錄服務(wù)的APIs的集合。
JavaOS(TM)
一個(gè)基于Java的操作系統(tǒng),對(duì)各種計(jì)算和用戶平臺(tái)進(jìn)行了優(yōu)化。JavaOS(TM)操作環(huán)境提供了一個(gè)運(yùn)行時(shí)規(guī)范,使Java程序能夠直接運(yùn)行在硬件平臺(tái)之上而不需要宿主操作系統(tǒng)。
Java(TM) Platform
由Java編程語(yǔ)言,一組APIs,類庫(kù),其它在開(kāi)發(fā),編譯,錯(cuò)誤檢查中要用到的程序,和一個(gè)能夠裝載并執(zhí)行class文件的Java虛擬機(jī)組成。
除此之外,Java平臺(tái)的目標(biāo)是提供一組一致的兼容的實(shí)現(xiàn)。符合兼容性規(guī)范的實(shí)現(xiàn)能夠得到Sun公司的兼容性標(biāo)志。
Java 2是當(dāng)前的一代Java平臺(tái)。
Jini(TM) Technology
一組Java APIs,可能是任何一個(gè)Java 2平臺(tái)的可選包。Jini API使網(wǎng)絡(luò)設(shè)備和服務(wù)變得透明,不再需要用戶去管理系統(tǒng)或網(wǎng)絡(luò)使其正常工作。
Jini在目前是任何一個(gè)Java平臺(tái)版本的一個(gè)可選軟件包。
JNDI
Java Naming and Directory Interface(TM)的縮寫(xiě),一組用來(lái)提供重命名和目錄服務(wù)的APIs的集合。
JPEG
Joint Photographic Experts Group的縮寫(xiě)。 由這個(gè)小組建立的一個(gè)圖象文件壓縮標(biāo)準(zhǔn)。它通過(guò)幾乎察覺(jué)不出的圖象質(zhì)量的損失來(lái)實(shí)現(xiàn)了巨大的圖象壓縮比。
JRE
Java(TM) runtime environment的縮寫(xiě)。一個(gè)Java Development Kit (JDK(TM))的子集,適合最終用戶和希望重新發(fā)布運(yùn)行環(huán)境的開(kāi)發(fā)人員。Java runtime environment由Java虛擬機(jī),Java核心類和支持文件組成。
Just-in-time (JIT) Compiler
一個(gè)在Java運(yùn)行時(shí),把所有字節(jié)碼轉(zhuǎn)換為本地代碼的編譯器。這樣就會(huì)加速Java的執(zhí)行,相對(duì)Java虛擬機(jī)的解釋執(zhí)行。
JVM
參見(jiàn): Java(TM) Virtual Machine (JVM)
本篇文章來(lái)自Java中文網(wǎng):http://javaweb.cc/other/english/2213.shtml
教程由JAVA中文網(wǎng)整理校對(duì)發(fā)布(javaweb.cc)
lexical
關(guān)于如何把源代碼翻譯成各種編譯器能夠識(shí)別的記號(hào)
literal
整數(shù),浮點(diǎn)數(shù),字符的基本表示方法。比如,字面上3.0是一個(gè)雙精度浮點(diǎn)數(shù),"a"是一個(gè)字符。
local variable
一個(gè)塊中可見(jiàn)的數(shù)據(jù)項(xiàng),但是對(duì)塊外面的代碼是不可見(jiàn)的。比如,任何在一個(gè)方法中聲明的變量是一個(gè)局部變量,不能在方法外面被使用。
long
Java語(yǔ)言的一個(gè)關(guān)鍵字,用來(lái)定義一個(gè)long類型的變量。
member
類的一個(gè)域或者方法,除非顯式指明,否則一個(gè)member不是靜態(tài)的。
method
類中定義的一個(gè)方法,參見(jiàn)instance method, class method,除非顯式指明,否則一個(gè)method不是靜態(tài)的。
module
一個(gè)軟件單位,由一個(gè)或多個(gè)相同容器類型的J2EE組件和一個(gè)相同類型的配置描述符組成。有三種module類型:EJB,Web,和Application Client。模塊可以被配置成獨(dú)立的單元或嵌入到應(yīng)用程序中。
Mosaic
一個(gè)提供簡(jiǎn)單圖形界面,使用戶能夠方便的訪問(wèn)Internet上的數(shù)據(jù)的程序。這些數(shù)據(jù)可能是簡(jiǎn)單文件,或者超文本文檔。Mosaic是由NCSA的一個(gè)小組編寫(xiě)的。
multithreaded
描述一個(gè)程序,它的代碼被設(shè)計(jì)成擁有多個(gè)同時(shí)被執(zhí)行的部分。參見(jiàn)thread。
object
面向?qū)ο蟪绦虻闹饕囊粋€(gè)構(gòu)造塊。每一個(gè)對(duì)象是一個(gè)編程單元,由數(shù)據(jù)(instance methods)和功能(instance methods)組成,參見(jiàn)class。
object-oriented design
一個(gè)軟件設(shè)計(jì)方法,通過(guò)類和對(duì)象為抽象和具體的對(duì)象的特點(diǎn)建模。
octal
使用8作為基的計(jì)數(shù)系統(tǒng)。使用數(shù)字0-7。在Java中8進(jìn)制數(shù)必須帶有0前綴。參見(jiàn)hexadecimal。
One
Open Net Environment的縮寫(xiě),由Sun組織,主要工業(yè)參與商資助,描述了一個(gè)易于理解的體系結(jié)構(gòu),用來(lái)創(chuàng)建,編譯和配置Web服務(wù)。ONE是平臺(tái)無(wú)關(guān)的,基于完全開(kāi)放的標(biāo)準(zhǔn)。Sun ONE指代一個(gè)特定的由Sun和iPlanet提供的對(duì)這個(gè)體系結(jié)構(gòu)的實(shí)現(xiàn)。
Optional Packages
一個(gè)或多個(gè)APIs的集合,在Java平臺(tái)上,它們是可用的,并且可能在兼容平臺(tái)上也被支持。
隨著時(shí)間推移,Optional Packages可能因?yàn)槭袌?chǎng)需要而變成必需的。
ORB
Object Request Broker的縮寫(xiě)。一個(gè)函數(shù)庫(kù),使CORBA對(duì)象能夠定位另一個(gè)對(duì)象且和它通訊。
OTS
Object Transaction Service的縮寫(xiě),一組接口定義使CORBA對(duì)象能夠處理事務(wù)。
overloading
在同一個(gè)作用域里面使用一個(gè)標(biāo)識(shí)符指代多個(gè)對(duì)象。在Java語(yǔ)言中,你可以overload方法,但不能是變量和操作符。
overriding
在子類中對(duì)在父類中定義的方法提供一個(gè)不同的實(shí)現(xiàn)。
re-entrant enterprise bean
一個(gè)enterprise bean,能夠被并發(fā)的,交叉的,或遞歸的調(diào)用,并且相互之間不干擾。
reference
一個(gè)內(nèi)容是地址的數(shù)據(jù)元素。
remote interface
enterprise bean兩個(gè)接口中的一個(gè)。remote接口定義了能夠被客戶調(diào)用的商業(yè)方法。
remove method
在home接口中定義的方法,客戶端可以調(diào)用它來(lái)刪除一個(gè)enterprise bean。
resource adapter
一個(gè)系統(tǒng)級(jí)的軟件驅(qū)動(dòng),被EJB容器和應(yīng)用程序客戶用來(lái)連接到一個(gè)EIS。通常一個(gè)resource adapter總是針對(duì)某一特定EIS的。它以函數(shù)庫(kù)的形式提供,運(yùn)行在使用它的服務(wù)器或客戶地址空間中。一個(gè)resource adapter插入到一個(gè)容器中。應(yīng)用程序組件配置容器,然后使用客戶端API(由adapter提供的)或者由高層抽象生成的工具來(lái)訪問(wèn)下面的EIS。resource adapter和EJB容器配合提供與EIS連接的下層機(jī)制 - 事務(wù),安全,和連接池。
resource manager
提供訪問(wèn)一組共享對(duì)象的能力。一個(gè)recource manager參與一個(gè)被事務(wù)管理器外部控制和調(diào)整的事務(wù)。一個(gè)resource manager通常和訪問(wèn)它的客戶運(yùn)行在不同的主機(jī)上和不同的地址空間中。
resource manager connection
代表一個(gè)和資源管理器的會(huì)話的對(duì)象。
resource manager connection factory
一個(gè)用來(lái)創(chuàng)建資源管理器對(duì)象的對(duì)象。
本篇文章來(lái)自Java中文網(wǎng):http://javaweb.cc/other/english/2214.shtml
教程由JAVA中文網(wǎng)整理校對(duì)發(fā)布(javaweb.cc)
role (development)
在開(kāi)發(fā)和配置一個(gè)基于J2EE技術(shù)的應(yīng)用程序的過(guò)程中某個(gè)對(duì)象起到的作用。role有:應(yīng)用程序組件提供者,應(yīng)用程序編譯者, 應(yīng)用程序配置者
, J2EE平臺(tái)提供者, EJB容器提供者, EJB容器提供者, Web容器提供者, Web服務(wù)器提供者,工具提供者和系統(tǒng)管理員。
role (security)
一個(gè)抽象的邏輯的用戶組,由Application Assembler定義。當(dāng)一個(gè)application被配置的時(shí)候,roles被映射到安全標(biāo)識(shí),比如負(fù)責(zé)人或者組,在操作和環(huán)境中。
role mapping
把由容器所識(shí)別的組和負(fù)責(zé)人和由配置描述符定義的安全角色聯(lián)系起來(lái)的一個(gè)過(guò)程。在組件被安裝到服務(wù)器之前,安全角色必須被配制器映射。
rollback
當(dāng)一個(gè)事務(wù)中所有的對(duì)數(shù)據(jù)庫(kù)的更新被取消的一個(gè)點(diǎn)。
root
在對(duì)象層次中的一個(gè)對(duì)象,所有對(duì)象都是從它繼承而來(lái)的,root對(duì)象在層次圖中沒(méi)有上層對(duì)象,參見(jiàn)hierarchy, class, package。
RPC
Remote Procedure Call的縮寫(xiě)。通過(guò)向遠(yuǎn)程主機(jī)發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包執(zhí)行,看上去就跟普通的調(diào)用過(guò)程(或方法調(diào)用)是一樣的,
runtime system
一個(gè)軟件環(huán)境,其中能夠運(yùn)行為Java虛擬機(jī)編譯的程序。runtime system包含了為了裝入用Java編寫(xiě)的程序,動(dòng)態(tài)連接本地方法,內(nèi)存管理,異常處理和實(shí)現(xiàn)一個(gè)Java虛擬機(jī)(可能是Java一個(gè)解釋器)所必須的代碼。SAX
Simple API for XML的縮寫(xiě)。一個(gè)為訪問(wèn)XML文檔提供的事件驅(qū)動(dòng)的,串行訪問(wèn)的機(jī)制。
Sandbox
由許多的系統(tǒng)組件組成,從作為應(yīng)用程序一部分運(yùn)行的安全管理器,到Java虛擬機(jī)中的和語(yǔ)言本身的安全措施。SandBox保證一個(gè)不可信任的,可能惡意攻擊的應(yīng)用程序不能訪問(wèn)系統(tǒng)資源。
scope
一個(gè)特性標(biāo)識(shí),用來(lái)規(guī)定哪些地方標(biāo)識(shí)符是可見(jiàn)的。Java環(huán)境中的大多數(shù)標(biāo)識(shí)符擁有類或者局部的scope。實(shí)例變量和類變量有類的scope;它們?cè)陬惖耐獠炕蛘咦宇愔惺褂脮r(shí)必須在它們前面加上一個(gè)類名前綴(對(duì)類變量和類方法)或者類實(shí)例名。所有其他的在方法內(nèi)部定義的變量具有局部scope;它們只能在封閉的塊中使用。
Secure Socket Layer (SSL)
一個(gè)為了個(gè)人隱私在Web服務(wù)器和瀏覽器之間進(jìn)行加密的協(xié)議。
security attributes
一組和負(fù)責(zé)人相關(guān)聯(lián)的屬性。Security attributes能夠和一個(gè)負(fù)責(zé)人相關(guān)聯(lián),通過(guò)J2EE產(chǎn)品提供商制定的認(rèn)證協(xié)議。
本篇文章來(lái)自Java中文網(wǎng):http://javaweb.cc/other/english/2215.shtml
教程由JAVA中文網(wǎng)整理校對(duì)發(fā)布(javaweb.cc)
security constraint
一個(gè)明確的方法來(lái)注釋想要的對(duì)Web內(nèi)容的保護(hù)。一個(gè)security constraint由一系列Web資源,一個(gè)認(rèn)證限制和用戶數(shù)據(jù)限制組成。
security context
一個(gè)對(duì)象,封裝了跟安全有關(guān)的兩個(gè)實(shí)體之間的共享狀態(tài)信息。
security permission
由J2SE定義的J2EE平臺(tái)用來(lái)表述應(yīng)用組件供應(yīng)商必須遵循的編程限制的一個(gè)機(jī)制。
security permission set
J2EE產(chǎn)品提供商為每一個(gè)組件類型的執(zhí)行所必須提供的安全允許的最小集合。
security policy domain
一個(gè)作用域,其中安全策略被定義并且由安全管理員強(qiáng)制執(zhí)行。一個(gè)security policy domain有以下的幾個(gè)特征:
它有一組用戶(或者負(fù)責(zé)人)
它有一個(gè)很好定義的認(rèn)證協(xié)議來(lái)認(rèn)證用戶
它可能有組的概念來(lái)簡(jiǎn)化安全策略的設(shè)置
security technology domain
一個(gè)作用域,其中同樣的安全機(jī)制被用來(lái)強(qiáng)制執(zhí)行一個(gè)安全策略。在單個(gè)technology domain中可以存在多個(gè)security policy domain。
server principal
服務(wù)器在操作系統(tǒng)中執(zhí)行的地位。
servlet
一種擴(kuò)展Web服務(wù)器功能的Java程序,動(dòng)態(tài)生成文檔,并且使用使用請(qǐng)求應(yīng)答的方式和用戶交互。
stream
Stream是一個(gè)簡(jiǎn)單的從發(fā)送著到接受者的數(shù)據(jù)字節(jié)流。有兩種基本的分類,所以java.io包包含兩個(gè)抽象類(InputStream和OutputStream)。
subarray
一個(gè)在另一個(gè)數(shù)組中的數(shù)組。
subclass
從某個(gè)類派生出來(lái)的類,可能是和一個(gè)或多個(gè)類之間的關(guān)系。參見(jiàn)superclass, supertype。
subtype
如果類型X繼承或者實(shí)現(xiàn)了類型Y,那么X是Y的一個(gè)subtype。參見(jiàn)supertype。
superclass
一個(gè)類,某個(gè)類是從它派生而來(lái)的,可能是和一個(gè)或多個(gè)類之間的關(guān)系。參見(jiàn)subclass, subtype。
super
Java語(yǔ)言的一個(gè)關(guān)鍵字,用來(lái)訪問(wèn)父類的類成員。
supertype
一個(gè)類型的父類型是指它所實(shí)現(xiàn)的所有接口和繼承的類型,參見(jiàn)subtype, superclass。
switch
Java語(yǔ)言的關(guān)鍵字,用來(lái)計(jì)算一個(gè)變量,在后面用來(lái)匹配由case語(yǔ)句指定的值,以決定執(zhí)行哪一組語(yǔ)句。
Swing Set
一系列圖形用戶接口GUI)組件的代碼名稱,能夠在任何支持Java虛擬機(jī)的本地平臺(tái)上一致的運(yùn)行。因?yàn)樗鼈兪峭耆肑ava語(yǔ)言編寫(xiě)的,這些組件可能提供的功能比本地平臺(tái)提供的等價(jià)功能更為強(qiáng)大。(和AWT對(duì)比)
synchronized
Java語(yǔ)言的關(guān)鍵字,當(dāng)它用來(lái)修飾一個(gè)方法或者一個(gè)代碼塊的時(shí)候,能夠保證在同一時(shí)刻最多只有一個(gè)線程執(zhí)行該段代碼。(
TCP/IP
Transmission Control Protocol based on IP的縮寫(xiě)。這是一個(gè)Internet協(xié)議,提供可靠的基于流的從一個(gè)主機(jī)到另一個(gè)的數(shù)據(jù)傳輸。參見(jiàn)IP。
Technology Compatibility Kit (TCK)
一個(gè)測(cè)試包,一組工具,和其它必需的東西,用來(lái)證明一個(gè)特定的Sun的技術(shù)的實(shí)現(xiàn)是否和應(yīng)用程序規(guī)范兼容或者是否和Sun和Sun設(shè)計(jì)的參考實(shí)現(xiàn)兼容。
this
Java語(yǔ)言的關(guān)鍵字,用來(lái)代表它出現(xiàn)的類的一個(gè)實(shí)例。this可以用來(lái)訪問(wèn)類變量和類方法。
UDDI
Universal Description Discovery and Integration的縮寫(xiě)。UDDI提供了一個(gè)全局的,公共的,基于XML的,在線的商業(yè)注冊(cè),商業(yè)用戶通過(guò)它可以注冊(cè)并宣傳它們的Web服務(wù)。UDDI定義Internet版的白頁(yè)和黃頁(yè)電話號(hào)碼本。
Unicode
ISO 10646定義的16位長(zhǎng)的字符集。參見(jiàn)ASCII。Java環(huán)境中所有的源代碼都是用Unicode編寫(xiě)的。
URI
Uniform Resource Identifier的縮寫(xiě)。一個(gè)用來(lái)標(biāo)識(shí)抽象或物理資源的簡(jiǎn)潔字符串。一個(gè)URI或者是一個(gè)URL或者是一個(gè)URN。URLs和URNs是具體的確實(shí)存在的實(shí)體。URI是一個(gè)抽象的父類。
URL
Uniform Resource Locator的縮寫(xiě)。一個(gè)使用文本指代WWW網(wǎng)站上任意數(shù)據(jù)的標(biāo)準(zhǔn)。一個(gè)URL通常是這樣的"protocol://host/localinfo",protocol指明傳輸對(duì)象的時(shí)候使用的協(xié)議(比如HTTP或FTP),host指明在Internet上找到一臺(tái)主機(jī)的名字,localinfo是一個(gè)傳遞給遠(yuǎn)程主機(jī)上協(xié)議處理器的字符串(常常是一個(gè)文件名)。
URL path
通過(guò)一個(gè)HTTP請(qǐng)求傳遞的URL,來(lái)使用一個(gè)servlet。URL由Context Path + Servlet Path + PathInfo組成,其中被請(qǐng)求的servlet是與Context Path相關(guān)聯(lián)的servlet上下文的一部分。如果這個(gè)上下文是默認(rèn)的上下文,以Web服務(wù)器的URL名字空間的基目錄為根,那么這個(gè)路徑前綴將會(huì)是一個(gè)空字符串。否則這個(gè)路徑前綴以/開(kāi)始,但是不是以/結(jié)束。Servlet Path部分直接和激活這個(gè)請(qǐng)求的映射對(duì)應(yīng)。這個(gè)路徑以/字符開(kāi)始。PathInfo是請(qǐng)求路徑的一部分,但不是Context Path或者Servlet Path的一部分。
URN
Uniform Resource Name的縮寫(xiě)。唯一標(biāo)識(shí)一個(gè)實(shí)體的標(biāo)識(shí)符,但是不能給出實(shí)體的位置。系統(tǒng)可以先在本地尋找一個(gè)實(shí)體,在它試著在Web上找到該實(shí)體之前。它也允許Web位置改變,然而這個(gè)實(shí)體卻還是能夠被找到。
variable
由一個(gè)標(biāo)識(shí)符命名的數(shù)據(jù)項(xiàng)。每一個(gè)variable有一種類型,比如一個(gè)整數(shù)或者一個(gè)對(duì)象,和一個(gè)作用域。參見(jiàn)class variable, instance variable, local variable。
virtual machine
一個(gè)抽象的計(jì)算設(shè)備規(guī)范,可以使用不同的方法實(shí)現(xiàn),軟件的或者硬件的。你把程序編譯成virtual machine的指令集和你把程序編譯成微處理器指令集是十分相似的。Java(TM) virtual machine*由字節(jié)碼指令集合,一組寄存器,一個(gè)堆棧,一個(gè)垃圾收集堆和一個(gè)存放方法的區(qū)域
本篇文章來(lái)自Java中文網(wǎng):http://javaweb.cc/other/english/2216.shtml
教程由JAVA中文網(wǎng)整理校對(duì)發(fā)布(javaweb.cc)
vocabulary
傳統(tǒng)上,軟件程序被編寫(xiě),然后編譯成直接和計(jì)算機(jī)中驅(qū)動(dòng)微處理器工作的操作系統(tǒng)相關(guān)的機(jī)器碼。Java平臺(tái)通過(guò)提供一個(gè)程序編寫(xiě)編譯,然后能夠通過(guò)網(wǎng)絡(luò)傳輸并且在任何由足夠兼容性的虛擬機(jī)的平臺(tái)上運(yùn)行的模型減輕了這種依賴型。
這個(gè)模型提供了額外的好處,高安全性,即因?yàn)槌绦蚩梢员惶摂M機(jī)驗(yàn)證一致性在通過(guò)網(wǎng)絡(luò)傳輸之后,也因?yàn)樘摂M機(jī)運(yùn)行在安全的"sandbox"的中,能夠阻止一些特定的破壞性的行為。
軟件開(kāi)發(fā)人員已經(jīng)投入Java語(yǔ)言的懷抱,因?yàn)樗鼫p少了編寫(xiě)程序和支持軟件代碼的費(fèi)用和時(shí)間。他們不再需要為不同的操作系統(tǒng)和不同的微處理器重新編寫(xiě)功能相同的代碼。正在配置應(yīng)用程序的公司和組織喜歡Java,因?yàn)樗鼫p少了購(gòu)買和修改不同版本的應(yīng)用程序使其適應(yīng)各自網(wǎng)絡(luò)環(huán)境中各種類型的計(jì)算機(jī)和服務(wù)器的費(fèi)用。
void
Java語(yǔ)言的關(guān)鍵字,用在Java語(yǔ)言的方法聲明中說(shuō)明這個(gè)方法沒(méi)有任何返回值。"void"也可以用來(lái)表示一句沒(méi)有任何功能的語(yǔ)句。
volatile
Java語(yǔ)言的關(guān)鍵字,用在變量的聲明中表示這個(gè)變量是被同時(shí)運(yùn)行的幾個(gè)線程異步修改的。
一個(gè)UNIX命令,使用它將會(huì)等待所有的后臺(tái)進(jìn)程結(jié)束,并且報(bào)告他們的結(jié)束狀態(tài)。
Web application, distributable
用J2EE技術(shù)編寫(xiě)的應(yīng)用程序,所以它可以被配置到一個(gè)分布運(yùn)行在一臺(tái)或多臺(tái)主機(jī)的多個(gè)Java虛擬機(jī)中的Web容器中。這種類型的應(yīng)用程序的配置描述符使用可分布的元素。
Web component
一個(gè)通過(guò)相應(yīng)為請(qǐng)求提供服務(wù)的組件,或者是一個(gè)Servlet或者是一個(gè)JSP頁(yè)面。
Web container
實(shí)現(xiàn)J2EE體系結(jié)構(gòu)中Web組件協(xié)議的容器。這個(gè)協(xié)議規(guī)定了一個(gè)Web組件運(yùn)行時(shí)的環(huán)境,包括安全,一致性,生命周期管理,事務(wù),配置和其它的服務(wù)。一個(gè)提供和JSP和J2EE平臺(tái)APIs界面相同服務(wù)的容器。一個(gè)Web container 由Web服務(wù)器或者J2EE服務(wù)器提供。
Web container, distributed
一個(gè)Web容器,能夠運(yùn)行一個(gè)標(biāo)記為分布式的,在同一臺(tái)主機(jī)或不同主機(jī)上的多個(gè)Java虛擬機(jī)中運(yùn)行的Web應(yīng)用程序。
Web server
提供訪問(wèn)Inetrnet,Intranet或者Extranet服務(wù)的軟件。一個(gè)Web server運(yùn)行在Web站點(diǎn)上,提供對(duì)HTTP和其它協(xié)議的支持,并且運(yùn)行服務(wù)器端的程序(比如CGI腳本或者servlets)來(lái)實(shí)現(xiàn)一定的功能。在J2EE體系結(jié)構(gòu)中,Web Server為Web容器提供服務(wù)。比如,一個(gè)Web容器通常依靠Web Server來(lái)處理HTTP消息。J2EE平臺(tái)假設(shè)一個(gè)Web容器總是運(yùn)行在同一個(gè)廠商提供的Web Server之上,所以沒(méi)有制定這兩個(gè)實(shí)體之間的協(xié)議。一個(gè)Web Server可以運(yùn)行一個(gè)或多個(gè)Web容器。
摘要: IO包中的其他流: 1.打印流 a)PrintWriter(寫(xiě)-->print打印) 與PrintStream (字符流) 1 PrintWriter用法一:其實(shí)它是對(duì)一個(gè)Writer進(jìn)行了封裝 2 package com.javami.kudyTest; 3 import java.io.FileNotFoundExce... 閱讀全文 摘要: File類:用來(lái)將文件或者文件夾封裝成對(duì)象方便對(duì)文件或者文件夾的操作File對(duì)象可以作為參數(shù)傳遞給一個(gè)流.遞歸:函數(shù)自己調(diào)用自己應(yīng)用場(chǎng)景:當(dāng)某一個(gè)功能需要重復(fù)調(diào)用..1.遍歷一個(gè)文件,并且讓讓這個(gè)文件寫(xiě)入到一個(gè)文本里面,(需要樹(shù)狀的排序) 1 package com.javami.kudy.CodeAM; 2 import java.io.BufferedWriter; 3 imp... 閱讀全文 摘要: 字節(jié)流的抽象基類: InputStream(輸入) OutPutStream(輸出) 字符流的抽象基類: Reader(讀) Writer(寫(xiě)) 這四個(gè)類派生出來(lái)的子類都是由父類的名作為子類名的后綴. IO需要了解的問(wèn)題: 1.有了垃圾回收站為什么還要調(diào)用close方法去進(jìn)行關(guān)閉 解答... 閱讀全文
IO(Input OutPut)流
IO流用來(lái)處理設(shè)備之間的數(shù)據(jù)傳輸
JAVA對(duì)數(shù)據(jù)的操作是通過(guò)流的方式
JAVA用于操作流的對(duì)象都在IO包中
流按操作對(duì)象分為兩種: 字節(jié)流,字符流
流按流向分為: 輸入流,輸出流.
其它的內(nèi)容還是比較簡(jiǎn)單的,注意的是以下這幾個(gè)自定義包裝類:
實(shí)現(xiàn)1.
MyBufferedReader.class
1 package com.javami.kudy.Code13; 2 import java.io.IOException; 3 import java.io.Reader; //讀取字符流的抽象類 4 import java.io.IOException; 5 /* 6 * 自定義MyBufferedReader包裝Reader,提供了一個(gè)緩沖區(qū)的功能.提供了ReadLine功能. 7 * 1.用一個(gè)次組合,拿到被包裝的Reader對(duì)象 8 * 2.定義一個(gè)字符數(shù)組作為緩沖區(qū) 9 * 3.實(shí)現(xiàn)一個(gè)read方法,填充緩沖區(qū),從緩沖區(qū)那里返回一個(gè)字符 10 * 4.定義一個(gè)readLine方法,內(nèi)部調(diào)用read方法,循環(huán)讀取一行,進(jìn)行返回 11 * 5.定義一個(gè)close方法,關(guān)閉地底層所包裝的流 12 */ 13 public class MyBufferedReader extends Reader{ 14 private Reader r; 15 char[] buf = new char[1024]; 16 int len =0; 17 int pos = 0; 18 public MyBufferedReader(Reader r) 19 { 20 this.r = r; 21 } 22 /* 23 * 實(shí)現(xiàn)read()方法,實(shí)現(xiàn)緩存的功能 24 * 分析: 25 * 1.當(dāng)別人第一次調(diào)用該方法的時(shí),一次性的去填充緩沖區(qū) 26 * 2.定義一個(gè)len變量記住緩沖區(qū)的可用字符的數(shù)量 27 * 3.將數(shù)組的第一個(gè)元素返回 28 * 4.當(dāng)別人第二次調(diào)用的時(shí),將數(shù)組的二個(gè)元素返回 29 * 5.每次返回元素 len -- 30 * 6.當(dāng)len為零時(shí),說(shuō)明數(shù)組沒(méi)有可用字符啦,那么這時(shí)候返回一個(gè)-1 31 * 32 * 思路: 33 * 1.定義兩個(gè)成員變量,len記住可用字符數(shù)量,pos記住當(dāng)前字符的角標(biāo) 34 * 2.判斷l(xiāng)en是否為0,如果為零要填充緩沖區(qū).并且pos為零 35 * 3.判斷l(xiāng)en,如果為-1,則返回-1 36 * 4.將pos位置的元素返回.pos++ 37 */ 38 public int read() throws IOException 39 { 40 if(len ==0) 41 { 42 len = r.read(buf); 43 pos = 0; 44 } 45 if(len==-1) 46 return -1; 47 len--; 48 return buf[pos++]; 49 } 50 51 /* 52 * 實(shí)現(xiàn)readLine方法,實(shí)現(xiàn)讀一行的功能, 53 * 1.循環(huán)調(diào)用自己的方法的read方法,讀取字符 54 * 2.知道回車的字符,方法就結(jié)束 55 */ 56 public String readLine() throws IOException 57 { 58 StringBuilder sb = new StringBuilder(); 59 int ch; 60 while((ch=read())!=-1) 61 { 62 if(ch=='\r') 63 continue; 64 if(ch=='\n') 65 break; 66 sb.append((char)ch); 67 if(ch==-1&&sb.length()==0) 68 return null; 69 } 70 return sb.toString(); //轉(zhuǎn)換成字符串 71 } 72 @Override 73 public void close() throws IOException { 74 r.close(); 75 } 76 77 @Override 78 public int read(char[] cbuf, int off, int len) throws IOException { 79 int count=0; 80 for(int i=0; i<off+len; i++) 81 { 82 int ch = read(); 83 if(ch==-1) 84 break; 85 count++; 86 buf[i] = (char)ch; 87 } 88 return count; 89 } 90 91 92 93 }
MyBufferedWriter.class 這個(gè)主要是寫(xiě)入
1 package com.javami.kudy.Code13; 2 import java.io.IOException; 3 import java.io.Writer; 4 5 public class MyBufferedWriter extends Writer{ 6 7 private Writer w; 8 private char[] buf = new char[1024]; 9 private int pos = 0; 10 11 public MyBufferedWriter(Writer w) 12 { 13 this.w = w; 14 } 15 /* 16 * 定義Writer方法,實(shí)現(xiàn)寫(xiě)一個(gè)字符,實(shí)現(xiàn)緩存的功能 17 * 1.定義一個(gè)變量pos記住當(dāng)前的寫(xiě)入位置 18 * 2.每次調(diào)用都使用這個(gè)方法都會(huì)傳入一個(gè)字符,將字符緩存到數(shù)組pos位置里面去 19 * 3.pos++ 20 * 4.每次上來(lái)就判斷,如果pos =1024,刷新緩沖區(qū) ,pos = 0 21 */ 22 public void Writer(int ch)throws IOException 23 { 24 if(pos == 1024) 25 { 26 flush(); //刷新一下緩沖區(qū).并且初始化為零 27 pos = 0; 28 } 29 buf[pos++] = (char)ch; 30 } 31 @Override 32 public void close() throws IOException { 33 flush(); 34 w.close(); 35 } 36 37 @Override 38 public void flush() throws IOException { 39 w.write(buf,0,pos); //把buf0-pos位置的內(nèi)容寫(xiě)入進(jìn)去 40 } 41 public void writer(String data)throws IOException 42 { 43 char[] chars = data.toCharArray(); //轉(zhuǎn)換成字符 44 for(char c : chars) 45 write(c); 46 } 47 public void newline()throws IOException 48 { 49 write("\r\n"); //所謂的換行就是一個(gè) 50 } 51 @Override 52 public void write(char[] cbuf, int off, int len) throws IOException { 53 for(int i=0; i<off+len; i++) 54 { 55 w.write(buf[i]); 56 } 57 58 } 59 60 }
由于每次都要關(guān)閉流啊~~無(wú)奈.只好使用一個(gè)類來(lái)實(shí)現(xiàn)它們
CloseUtil.class
1 package com.javami.kudy.Code13; 2 import java.io.IOException; 3 import java.io.Reader; 4 import java.io.Writer; 5 public class CloseUtil { 6 private CloseUtil(){} 7 public static void close(Reader r,Writer w)throws IOException 8 { 9 try 10 { 11 if(r!=null) 12 r.close(); 13 } 14 finally 15 { 16 if(w!=null) 17 w.close(); 18 } 19 } 20 }
一個(gè)簡(jiǎn)單的測(cè)試類:
1 package com.javami.kudy.Code13; 2 import java.io.FileReader; 3 import java.io.FileWriter; 4 import java.io.IOException; 5 6 public abstract class BufferedTest { 7 8 /** 9 * @param args 10 */ 11 public static void main(String[] args) 12 { 13 MyBufferedReader mr = null; 14 MyBufferedWriter mw = null; 15 try 16 { 17 mr = new MyBufferedReader(new FileReader("src/a.txt")); 18 mw = new MyBufferedWriter(new FileWriter("src/b.txt")); 19 int len; 20 while((len=mr.read())!=-1) 21 { 22 mw.Writer(len); 23 } 24 } 25 catch(IOException e) 26 { 27 e.printStackTrace(); 28 } 29 finally 30 { 31 try 32 { 33 CloseUtil.close(mr, mw); 34 } 35 catch(IOException e) 36 { 37 } 38 } 39 } 40 }
BufferedReader 與 BufferedWriter 的存儲(chǔ)圖:
以上這幾個(gè)都是比較難理解的..~~
加油啦..