Так что в основном я боролся с палачом и не мог понять, как решить первую проблему.Вот почему я подумал, что могу поставить другую функцию;метод добавления слова в мой текстовый файл слов с помощью StreamWriter
с использованием FileStream
.(У меня тоже есть StreamReader
, поэтому я могу видеть, какое случайное слово оно выберет.)
Пытались (со всеми: writer.WriteLine(text)
):
Я пытался использовать StreamWriter writer = new StreamReader(fs.ToString(), append: true)
с FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)
Я пытался FileMode.Append
(потому что я хочу добавить), но это работает только в режиме только для записи, и мне нужно прочитать тексттоже.
Я пытался использовать файловый поток без ToSting (), но это привело к «Невозможно преобразовать из« System.IO.FileStream »в« строку »."
Я пытался сделать то же самое в другой программе, но только с StreamReader
и FileStream
, но это ничего не изменило в текстовом файле.
То, что я на самом деле хотел бы, чтобы это делалось: я ожидаю, что программа сможет добавить строку в текстовый файл, все еще будучи в состоянии прочитать выбранное слово.(При запуске программы выбирается случайное слово из текстового файла.)
Извините, если это выглядит грязно, я впервые задаю вопрос по stackoverflow.
Так почему это отличаетсяиз дубликата, потому что я хочу добавить файл, а не писать (перезаписывать) его.Я попробовал точно такой же FileStream
как «дубликат», но он только избавился от ошибки.Теперь я все еще застрял с неисправной StreamWriter
.
Часть кода:
private static FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
private static StreamReader reader = new StreamReader(fs);
private static string[] words = reader.ReadToEnd().Split(',');
public static Random randomizer = new Random();
private static int wordindex = randomizer.Next(0, words.Length);
public string GetWord()
{
return words[wordindex]; //returns random value out of array = random woord
}
`
И using
для StreamWriter
:
public string AddWordToFile(string word)
{
using (StreamWriter writer = new StreamWriter(fs.ToString(), append: true))
{
//bool ExistsInFile = false;
for (int i = 0; i < words.Length; i++)
{
if (words.Contains(word))
{
//ExistsInFile = true;
return "The word '" + word + "' already exists in the textfile.";
}
}
if (!words.Contains(word))
{
//ExistsInFile = false;
writer.WriteLine("," + word);
writer.Close();
return word + " added.";
}
else
{
return "Whoops, something went wrong :'I";
}
}
}