Str*_*usa 3 .net c# streamreader
我想要做的是记住我在输入流中的位置,然后再回到那里.在使用mark()和reset()的java中非常简单,但我不知道如何在c#中实现这一点.没有这样的方法.
例如
public int peek()
{
try
{
file.x; //in java file.mark(1)
int tmp = file.read();
file.+ //in java file.reset();
return tmp;
}
catch (IOException ex) {}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
的确,我不知道.但是你可以使用类似Stack的东西,只需按下Push()和Pop()就可以按顺序上下移动你的标记:
FileStream file = new FileStream(...);
try {
Stack<long> markers = new Stack<long>();
markers.Push(file.Position);
file.Read(....);
file.Seek(markers.Pop(),SeekOrigin.Begin);
} finally {
file.Close();
}
Run Code Online (Sandbox Code Playgroud)
基于词典的另一个想法:
FileStream file = new FileStream(...);
try {
Dictionary<string,long> markers = new Dictionary<string,long>();
markers.Add("thebeginning",file.Position);
file.Read(....);
file.Seek(markers["thebeginning"],SeekOrigin.Begin);
} finally {
file.Close();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
790 次 |
| 最近记录: |