Как преобразовать StreamReader в строку?
Я изменил свой код, чтобы открыть файл только для чтения. Теперь у меня возникли проблемы с использованием File.WriteAllText
потому что мой FileStream
и StreamReader
не преобразуются в строку.
Это мой код:
static void Main(string[] args)
{
string inputPath = @"C:Documents and SettingsAll UsersApplication Data"
+ @"MicrosoftWindows NTMSFaxActivityLogOutboxLOG.txt";
string outputPath = @"C:FAXLOGOutboxLOG.txt";
var fs = new FileStream(inputPath, FileMode.Open, FileAccess.Read,
FileShare.ReadWrite | FileShare.Delete);
string content = new StreamReader(fs, Encoding.Unicode);
// string content = File.ReadAllText(inputPath, Encoding.Unicode);
File.WriteAllText(outputPath, content, Encoding.UTF8);
}
3 ответов
используйте метод ReadToEnd () StreamReader:
string content = new StreamReader(fs, Encoding.Unicode).ReadToEnd();
Это, конечно, важно, чтобы закрыть StreamReader после доступа. Следовательно, a using
утверждение имеет смысл, как предложено keyboardP и другие.
string content;
using(StreamReader reader = new StreamReader(fs, Encoding.Unicode))
{
content = reader.ReadToEnd();
}
string content = String.Empty;
using(var sr = new StreamReader(fs, Encoding.Unicode))
{
content = sr.ReadToEnd();
}
File.WriteAllText(outputPath, content, Encoding.UTF8);