我在Java中搜索了一些東西來讀取文件。我發現FileInputStream
和DataInputStream
,但我想知道這個流的內部工作。有人能夠清楚地解釋我們的工作方式嗎?FileInputStream的內部工作
回答
對於每個系統(Linux,Mac,Windows,甚至它們的不同版本),它的工作方式都不相同。這真是太棒了。你不需要知道,你只知道它被處理。你可以在每個系統上使用它。
如果你真的想知道它是如何工作的,你必須查看你正在工作的系統的jvm實現的源代碼。
,從FileInputStream中源:
private native void open(String name) throws FileNotFoundException;
public native int read() throws IOException;
private native int readBytes(byte b[], int off, int len) throws IOException;
這表明它是寫爲每個系統不同。但是,當你想使用它時,無論你使用什麼系統,都可以使用相同的代碼。
要獲得關於兩者之間差異的明確答案(至少從嚴格的Java觀點來看),請查看Java API(http://www.oracle.com/technetwork/java/api- 141528.html)規範了您正在使用的Java版本。在JavaSE 1.6的情況下,請查看FileInputStream和DataInputStream。
據我所知,DataInputStream對於使用輸入的數據流是很有用的,而FileInputStream用於訪問程序外部的文件(例如在文件系統上)。
FileInputStream
是一個以字節流的形式讀取文件的類。
DataInputStream
是一個類,讀取另一個流並應用轉換爲標準的類型(即,而不是讀取字節,你可以告訴它讀取4個字節的int
)。
他們服務兩個完全不同的目的。
以及我正在嘗試閱讀文件,然後我搜索了兩種方法來做到這一點: - FileInputStream fis = new FileInputStream(「C:/Users/pranay/Desktop/pranay.txt」); \t \t DataInputStream dis = new DataInputStream(fis); \t \t BufferedReader br = new BufferedReader(new InputStreamReader(dis)); \t \t或 \t \t BufferedReader br = new BufferedReader(new FileReader(「C:/Users/pranay/Desktop/pranay.txt」)); – 2011-04-18 00:31:49
- 1. 內部工作
- 2. FileInputStream無法在Android小部件中工作
- 3. Jenkins內部工作
- 4. 的Calendar.MONTH和內部工作
- 5. Fabric Composer的內部工作
- 6. Spark的內部工作
- 7. 內部鎖的工作
- 8. Enum.GetValues()的內部工作()
- 9. GSON的內部工作
- 10. HTML的內部工作?
- 11. JSF 1.2的內部工作
- 12. Integer類的內部工作
- 13. 表內表不工作的內部表
- 14. return語句是從內部工作到外部工作的嗎?
- 15. 內部加入不工作
- 16. jquery插件內部工作
- 17. scrollTop內部div不工作
- 18. 承諾內部工作
- 19. PHP ArrayObject內部工作
- 20. MYSQL插入內部工作
- 21. SQL SERVER:內部工作
- 22. 內部與intent.getextras()工作
- 23. 萬家樂內部工作
- 24. $ http.delete不工作內部foreach
- 25. MVC內部工作PHP
- 26. 增加由Java FileInputStream使用的內部緩衝區大小
- 27. 確實的FileInputStream有一個內部緩衝區
- 28. 外部JavaScript不工作,而內部不
- 29. 創建新工作表時從模塊內部更新工作簿的內部工作表列表
- 30. OpenGL的內部工作原理
您可以隨時在Java源代碼中閱讀它們的實現,至少在您調用本地方法調用之前。 – 2011-04-17 22:41:30
你到底想知道他們是如何工作的? – squawknull 2011-04-17 22:42:06