在本檔案討論的讀寫是指兩個空間中物質的位移。以其中乙個空間為參照物,從該空間中取出物質到放到另乙個空間中謂之讀,從另乙個空間中取出物質放到該空間中謂之寫。讀寫是兩個空間之間物質運動一種稱謂。讀的運動由空間1、空間2、物質、行為四個要素構成,寫的運動由空間1,空間2、物質、行為四個要素構成。讀的運動是假定空間1和空間2首先存在著的,其中物質包含在空間1中,其目標是將空間1中的物質移動到空間2中。讀的運動過程是開啟空間1,開啟空間2,按固定塊取出物質,將物質放入空間2,迴圈將空間1中物質取完,然後關閉空間2,關閉空間1。寫的運動是讀的運動的逆過程。
在哲學中將運動形式分為6種,即生成、毀滅、增加、減少、修改以及位移。這種種運動又可分類四類,即影響事物本質變化的、影響事物性質變化的、影響事物數量變化的、影響事物位置變化的,其中生成、毀滅是影響事物本質變化的運動,增加、減少是影響事物數量變化的運動,修改是影響事物性質變化的運動,位移只是影響事物位置變化的。所以位移最大的特點是物質在不失真、不改變、原封不動的從乙個空間到別乙個空間。從上面的分析我們可以看出讀寫運動是一種位移運動。
程式中的讀寫是程式基礎編碼之一。程式中讀寫是哲學中位移運動在程式領域中的應用例項,它必然遵循位移運動的基本規律。在程式中的讀寫是由存貯空間1、存貯空間2、資料、讀寫方法四要素構成。
在程式中的存貯空間可以分為記憶體空間、外存空間。記憶體空間通常是指計算機記憶體的空間,對於程式而言是物件所在的空間。外存空間可以是本地硬碟、資料庫、網路硬碟等。資料報括結構化資料如物件,非結構化資料如字串。讀寫方法通常由開啟空間、資料讀寫、關閉空間三個部分組成,但在一些結構化空間存在著資料轉換,所以也可以是開啟空間、資料讀寫、資料轉換、關閉空間三個部分組成。
程式中的讀寫是基於中介的讀寫。其模型如下
讀寫演算法的邏輯中的讀邏輯目標是將目標資料空間指向的目標資料讀到源資料空間指向的源資料區中。如下:
(1) 中介資料存放區建立,中介資料空間讀、寫指向符定義;
(2) 中介資料空間寫指向符指向中介資料存放區;
(3) 目標資料區呼叫中介資料區寫入功能將資料寫入到中介資料存貯中;
(4) 中介資料區讀指向符指向中介資料存放區;
(5) 源資料區呼叫中介資料區的讀出功能將資料付值給源資料區。
記憶體空間到記憶體空間的讀寫,是我們經常用到的,但我們一般不會認為是讀
寫,如物件的轉殖和陣列的複製,我們會有這樣一些新的詞彙來取代讀寫的詞彙。下面我們以物件a到物件b的寫入為例來分析記憶體到記憶體的寫的演算法。
(1) 物件讀寫介面rw
物件讀寫介面是需物件繼承的介面,它由乙個讀方法和乙個寫方法構成。讀
方法的引數是乙個物件讀介面,寫方法的引數是乙個物件寫介面。
inte***ce rw
public void read(objectinput oi);
public void write(objectoutput oo);
(2) 物件讀介面
物件讀介面是需要讀的具體實現類繼承的介面,它由多個基本型別的讀方法構成。
inte***ce objectinput
public int readobject();
(3) 物件寫介面
物件寫介面是需要寫的具體實現類繼承的介面,它由多個基本型別的寫方法構成。
inte***ce objectinput
public void writeobject(object o);
(4) 物件讀介面實現類
物件讀介面實現類是物件讀介面的實現類,它由乙個委託實現類,物件讀
介面方法、物件讀原子方法組成。
class objectinputstream implements objectintput
inputstream is; //委託實現類
public object readobject() ;
(5) 物件寫介面實現類
物件寫介面實現類是物件寫介面的實現類,它由乙個委託實現類,物件寫
介面方法、物件寫原子方法組成。
abstract class objectoutputstream implements objectoutput
outputstream os; //委託實現類;
public void writeobject(object o) ;
(6) 物件間讀寫的實現類
class a2b
main()
//從b類中讀取資料到a類
a aa = new a(); //源資料區
b b = new b(); //目標資料區
bytearrayoutputstream bos= new bytearrayoutputstream();//中介寫指寫符
objectoutputstream oos = new objectoutputstream(bos); //目標與中介關聯
oos.writeobject(b.name); //目標寫入中介
oos.writeobject(b.age);
bytearrayinputstream bis = new bytearrayinputstream(bos.tobytearray());//中介讀指寫中介資料區
objectinputstream ois = new objectinputstream(bis); //源讀入與中介讀關聯
aa.read(ois); //從中介中讀出
bos.close(); //空間關閉
oos.close();
bis.close();
ois.close();
記憶體到外存的寫,我們以記憶體中某個物件將其內容寫入到檔案中為例。其處
理方式與記憶體到記憶體的讀寫是一樣的,也同樣是基於中介的寫。其處理過程如下:
(1) 建立乙個檔案;
(2) 建立乙個檔案寫入流;
(3) 建立乙個物件寫入流;
(4) 物件寫入流與檔案寫入流關聯;
(5) 記憶體中物件a呼叫物件寫入功能,將記憶體物件資料寫入到物件中,由物件寫入流寫到檔案中;
(6) 檔案寫入流、物件寫入流關閉.
外存到記憶體的讀,即從檔案中讀取資料,寫入到記憶體物件中。我們以記憶體中
某個物件將從檔案中讀取資料到物件中為例。其處理方式與記憶體到記憶體的讀寫是一樣的,也同樣是基於中介的讀。其處理過程如下:
(1) 開啟乙個檔案;
(2) 建立乙個檔案讀入流;
(3) 建立乙個物件讀入流;
(4) 物件讀入流與檔案讀入流關聯;
(5) 記憶體中物件a呼叫物件讀入功能,將檔案資料讀入到物件中;
(6) 檔案讀入流、物件讀入流關閉.
外存到外存的讀寫,是外存到記憶體的讀,和記憶體到外存的寫兩個處理過程的合加,其處理過程是先從外存到記憶體的讀,然後是記憶體到外存的寫,直到外存中的資料全部讀出。
查詢的哲學思考
資訊理論是研究資訊的基本性質和度量方法以及資訊的獲得 傳輸 存貯 處理和交換等一般規律的科學。資訊理論作為一門科學理論,發端於通訊工程。它具有廣義和狹義兩個概念 狹義資訊理論是應用統計方法研究通訊系統中資訊傳遞和資訊處理的共同規律的科學,即研究概率性語法資訊的科學 廣義資訊理論是應用數學和其他有關科...
判斷的哲學思考
判斷是形式邏輯學中的研究內容之一。判斷是對客觀事物情況有所斷定的一種思維形式,是用肯定或否定的形式反映周圍現實一種思維形式。判斷的特徵有兩個 1 一是有斷定行為發生 2 二是有判斷真假結果輸出。與概念的區別 第一,概念本身無所謂肯定或否定 第二,概念也無法表示它的真或假。判斷則不同,它至少是兩個概念...
網路安全的哲學思考
網路安全作為乙個現實存在,有產生 發展 消亡三個階段。當然這是從萬物有開始必有結束這個哲學的高度來說的。我們在技術的低層看到的是 我們從哲學的高度看到的是人性的弱點。從最基本的原理來說,安全是計算機這個物理層次和人這個精神層次的不一致造成的。兩者之間的鴻溝 gap 雖然可以通過良好的人機介面來彌補,...