Прочтите фактическое содержимое текстового файла с помощью FileStream и этих параметров С#
Мне нужно открыть текстовый файл в С# с помощью FileStream и с указанными ниже параметрами
var fileStream = new FileStream(filePath,
FileMode.Open,
FileAccess.Read,
FileShare.Read, 64 * 1024,
(FileOptions)FILE_FLAG_NO_BUFFERING |
FileOptions.WriteThrough & FileOptions.SequentialScan);
Текстовый файл содержит "1" или "0", и после получения результатов я собираюсь присвоить содержимое текстового файла строковой переменной. В случае, если вам интересно, мне нужны вышеуказанные параметры, чтобы избежать чтения Windows текстовых файлов из кеша.
System.IO.File.ReadAllText()
... недостаточно.
Кто-нибудь будет достаточно любезен, чтобы написать простой подраздел, который включает в себя эти требования для меня, как примеры, которые я видел до сих пор, включая работу с байтами и буферами (область, в которой я действительно должен работать в это время) и оставляет это при этом.
Спасибо
Ответы
Ответ 1
Может быть что-то вроде:
FileStream fileStream = new FileStream("[path]", FileMode.Open, FileAccess.Read, FileShare.Read, 64 * 1024,
(FileOptions)0x20000000 | FileOptions.WriteThrough & FileOptions.SequentialScan);
string fileContents;
using (StreamReader reader = new StreamReader(fileStream))
{
fileContents = reader.ReadToEnd();
}
bool assignedvariable = Convert.ToBoolean(fileContents);
assignvariable будет иметь значение true, если файл содержит 1 и false, если он содержит 0.
Извините, если на это был дан ответ, люди отправляются здесь очень быстро.
Ответ 2
Вы можете использовать StreamReader для чтения из потока:
string contents;
using(var sr = new StreamReader(fileStream))
{
contents = sr.ReadToEnd();
}
Ответ 3
File.ReadAllBytes
или
File.ReadAllText
Оба теоретически будут использовать кеш файлы Windows.
Прочитайте этот для лучшего понимания и для некоторых ограничений на FILE_FLAG_NO_BUFFERING, а также прочитайте fooobar.com/info/485032/...