我很難理解單詞「流的位置」。我的問題在某種程度上與流方法的概念相關Seek();這個方法確實讓我感到困惑,他們說它的目的是將流的位置設置爲一個給定的值,但是它的名字描述了seek操作而不是set操作。有沒有人清楚地明白這兩個詞是什麼和他們如何一起工作?感謝名單C#中的「在流中的位置」是什麼意思?
回答
將文件視爲一系列字節,並將流視爲該視圖上的一個視圖,並用光標標記當前位置 - 因此,當您讀取數據時,光標會前進。 Position
屬性只是該遊標的位置。所以當你打開一個流時,它通常是0,而且當你讀它時會增加。對於查找流,你可以「倒帶」到流的開始與
stream.Position = 0;
或者可能使用跳過10個字節:
stream.Position += 10;
等
甲stream基本上是一個字節序列 - 的位置是該流是在該序列中的點
的Seek
要點是「跳」到流中的位置 - 的特定索引(又名位置),類似於在硬盤上進行搜索。用Seek
你可以指定一個偏移量開始尋找,所以有多少字節要「跳」。
下面的語句2做完全相同:
s.Position = 100;
s.Seek(100, SeekOrigin.Begin);
而且他們都確定位置(作爲一個ByteCount)在哪裏下一個讀或Wri te會發生。
Seek()
這個名字很古老。
嘿Henk!你能向我解釋SeekOrigin的全部內容嗎?說s.Seek(100,SeekOrigin.End);它會設置從流結束開始的光標嗎? – Xris
是的。我認爲這些名字是非常漂亮的自我描述。你很少需要它們(因此Seek())。只需使用'Positon'。 –
我實際上同意,乍一看,Seek
不是它所做的最好的名字。 SeekAndSet
或SeekAndMove
會對我更有意義,因爲這就是該方法的作用 - 它在流中查找想要的位置並將光標設置到該位置。
但是,當您在計算機科學術語中考慮關於硬盤驅動器的Seek時,很明顯這種方法會起什麼作用。它尋求並移動到該位置。
- 1. 什麼?在C#中是什麼意思?
- 2. C中##是什麼意思?
- 3. '「」''在C#中的「」+ ex'是什麼意思?
- 4. 什麼是(int)在c#中的意思?
- 5. 什麼是connection.Dispose()在C#中的意思?
- 6. 在c/C++中,^ =是什麼意思?
- 7. C#中的=]是什麼意思?
- 8. c。宏中的`.`和`*`是什麼意思?
- 9. Objective-C中的「&error」是什麼意思?
- 10. 目標C中的^是什麼意思?
- 11. C++中的* const * a是什麼意思
- 12. C宏中的#x是什麼意思?
- 13. build.gradle中的ldFlags(' - c')是什麼意思?
- 14. C#中的「this」是什麼意思?
- 15. C++中的「(」<<「)是什麼意思?
- 16. c中的(char *)0是什麼意思?
- 17. C中的shellcode - 這是什麼意思?
- 18. C#中的[param:NotNull]是什麼意思?
- 19. C++中的(*)語法是什麼意思?
- 20. C#中的[input]是什麼意思?
- 21. Objective-C中的「@public」是什麼意思?
- 22. 在c#中'T:class'是什麼意思?
- 23. - >在C++中是什麼意思?
- 24. 在c#中,它是什麼意思'??'?
- 25. 在C++中'System :: String ^'是什麼意思?
- 26. 在c#中0u是什麼意思?
- 27. 在C#中,/ =是什麼意思?
- 28. 在C#中,expressionStack_xx_x是什麼意思?
- 29. 「::」在C++中是什麼意思?
- 30. 「void *(*)(void *)」在C++中是什麼意思?
它不是「流的位置」,而是「位置_流_」。 –
Thanx糾正! – Xris