0

(Books 类是在此代码之外定义的。)因此,当我尝试从此文件中阅读一本书时,我只得到这本书。每次我添加一个新的,旧的都会被覆盖。所以我无法将新书添加到我的 myLibraryBooks 列表中,因为它会自动被覆盖。

Books book = new Books();

Console.Write("Enter Author Name:");
book.Author = Console.ReadLine();

Console.Write("Enter Book Title:");
book.Title = Console.ReadLine();

Console.Write("Enter Book ISBN:");
book.ISBN = Console.ReadLine();

Console.Write("Enter the Publish Date:");
book.Publish_Date = Console.ReadLine();

myLibraryBooks.Add(new Books() { Author = book.Author.ToUpper(), Title = book.Title.ToUpper(), ISBN = book.ISBN, Publish_Date = book.Publish_Date.ToUpper() });
Console.WriteLine("Book added Successfully");
sw.Write(book.Author, FILE_PATH);
sw.Write("\r\n", FILE_PATH);
sw.Write(book.Title.ToUpper(), FILE_PATH);
sw.Write("\r\n", FILE_PATH);
sw.Write(book.ISBN.ToUpper(), FILE_PATH);
sw.Write("\r\n", FILE_PATH);
sw.Write(book.Publish_Date.ToUpper(), FILE_PATH);
sw.Write("\r\n", FILE_PATH);
sw.WriteLine(book.Author, FILE_PATH);
sw.Close();
4

1 回答 1

3

我在这里假设了很多,但我想尝试给出一个答案。

如果sw是 StreamWriter (我看不到声明的位置)那么你应该用它打开它

using(StreamWriter sw = new StreamWriter("yourFile", true))

强制 StreamWriter 附加到当前数据而不是覆盖它

请参阅 MSDN StreamWriter 构造函数

sw.Write呼叫也是错误的。您正在使用采用格式字符串和要插入格式字符串的对象的重载。相反,您只是在编写 Books 的属性。

你应该使用

sw.WriteLine(book.Author);

将每个属性放在单独的一行上,而不是放在一行中。

于 2013-03-05T20:26:14.193 回答