2011-12-16 26 views

回答

8

考慮裝載4 GB的文件到您的應用程序作爲一個對象....

如果那還不夠好考慮處理simultanously這些文件的50,想想有多少內存需要。

順便說一句,有一個高層次的做高層次操作的類別File

1

答案取決於你如何定義「流」和「單個對象」。

假設隨機訪問是兩者的區別,答案是流的抽象更爲普遍,不僅支持磁盤文件,還支持套接字,管道和其他通信通道。

1

The Unix file System是這個想法的來源。標準輸入,標準輸出和標準錯誤被視爲流:

文件只是一個數據流 - 一個接一個字節,沒有固有內部結構的Unix。程序解釋如何將此流劃分成行或記錄或字段。

按照慣例,處理文本的Unix程序通常會在找到新的行控制字符(八進制代碼012)的地方將字節流分解爲行。這只是一個慣例。它不是由操作系統強加的,並且不同的程序可以使用不同的方式來指示行結束。

1

如果您告訴它Java對象是什麼,Java也可以將輸入流「對待」爲對象。

ObjectInputStream objectInput = new ObjectInputStream(new FileInputStream(filepath)); 
MyObject myobject = (MyObject) objectInput.readObject(); 

這裏是關於輸入/輸出流的基礎教程: http://docs.oracle.com/javase/tutorial/essential/io/streams.html

0

流提供更好的abstaction。如果需要,您可以使用數據流將文件數據轉換爲對象,或者如果尚未提供全部數據,則可以繼續讀取數據流。

相關問題