Я работаю над своим домашним заданием, и я полностью застрял!Я пытаюсь использовать уже определенный ввод и сохранить его в файл с помощью метода saveDataTo () и прочитать ввод с помощью метода readDataFrom ().
Я застрял в первой части.Я не уверен, нужно ли мне сначала инициализировать данные в файле Program.cs?
Я не знаю, и я застрял.Вот код и надежда на несколько советов, как мне это сделать.
- РЕДАКТИРОВАТЬ -
Я могу добавить инструкции для обоих методов saveDataTo () и readDataFrom ():
Метод saveDataTo () принимает параметр BinaryWriter.Метод записывает значения всех 5 свойств объекта книги в поток файлов, связанный с записывающим устройством (связь выполняется в методе Main () класса Program).Внутри этого метода нет необходимости открывать и закрывать файловый поток и средство записи двоичных файлов.
Метод readDataFrom () принимает параметр BinaryReader.Метод считывает значения всех пяти свойств объекта Book из потока файлов, связанного с читателем (связь выполняется в методе Main () класса Program).Нет необходимости открывать и закрывать файловый поток и двоичное устройство чтения внутри этого метода.
Так что это дает мне подсказку, что я должен использовать и назначить свойства, которые будут сохранены в файле там?
- РЕДАКТИРОВАТЬ -
Обновлен код там.У меня проблема с содержимым, которое сохраняется в файл.Мне не показывают цену.Почему это так?
ff.APublisherNameTitle FirstNameLastName
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Lab_7
{
class Program
{
private const string FILE_NAME = "lab07.dat";
static void Main(string[] args)
{
//char ask;
/*
do
{
Console.Write("Enter Book Title: ");
publication.Title = Console.ReadLine();
Console.Write("Enter Author's First Name: ");
book.AuthorFirstName = Console.ReadLine();
Console.Write("Enter Author's Last Name: ");
book.AuthorLastName = Console.ReadLine();
Console.Write("Enter Publisher's Name: ");
publication.PublisherName = Console.ReadLine();
Console.Write("Enter Book Price: $");
publication.Price = float.Parse(Console.ReadLine());
Console.Write("Would like to enter another book? [Y or N] ");
ask = char.Parse(Console.ReadLine().ToUpper());
}
while (ask == char.Parse("Y"));
*/
Book book = new Book();
book.Price = 10.9F;
book.Title = "Title";
book.PublisherName = "PublisherName";
book.AuthorFirstName = "FirstName";
book.AuthorLastName = "LastName";
FileStream fileStream = new FileStream(FILE_NAME, FileMode.OpenOrCreate);
BinaryWriter write = new BinaryWriter(fileStream);
book.saveDataTo(write);
write.Close();
fileStream = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
BinaryReader read = new BinaryReader(fileStream);
book.readDataFrom(read);
read.Close();
}
}
}
Publication.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Lab_7
{
class Publication
{
private float price;
private string publisherName, title;
public float Price
{
get
{
return price;
}
set
{
price = value;
}
}
public string PublisherName
{
get
{
return publisherName;
}
set
{
publisherName = value;
}
}
public string Title
{
get
{
return title;
}
set
{
title = value;
}
}
public void display()
{
Console.WriteLine("{0}\n{1}\n{2}", title, publisherName, price);
}
}
}
Book.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Lab_7
{
class Book : Publication
{
private string authorFirstName, authorLastName;
public string AuthorFirstName
{
get
{
return authorFirstName;
}
set
{
authorFirstName = value;
}
}
public string AuthorLastName
{
get
{
return authorLastName;
}
set
{
authorLastName = value;
}
}
public new void display()
{
}
public string getAuthorName()
{
return authorFirstName + " " + authorLastName;
}
public void readDataFrom(BinaryReader r)
{
Price = r.ReadInt32();
PublisherName = r.ReadString();
Title = r.ReadString();
authorFirstName = r.ReadString();
authorLastName = r.ReadString();
}
public void saveDataTo(BinaryWriter w)
{
w.Write(base.Price);
w.Write(base.PublisherName);
w.Write(base.Title);
w.Write(AuthorFirstName);
w.Write(AuthorLastName);
}
}
}
С уважением.
HelpNeeder.