我正在尝试创建一个Stream Writer,然后将一些来自Console的输入写入文件,然后读取内容。唯一的问题是我想用两种不同的方法来做。从这里写下:addbook()
并从这里阅读:list_books()
。但我无法读取该文件,因为流阅读器不允许我访问我的任何变量或该文件再次使用。
//So I am trying to write from the static void addbook method and then read from the static void list_books method
//I want to Write from one static void and then I want to read them from a different method.
static void addbook()
{
//Here is where I get my strings that I will write
Console.Write("Book Title:");
string title = Console.ReadLine();
Console.Write("ISBN#:");
string isbn = Console.ReadLine();
Console.Write("Author:");
string author = Console.ReadLine();
Console.Write("Publish Date:");
string publish_date = Console.ReadLine();
//Here Is where I create the Stream Reader and Writer
//And where I write to the file
var fs = File.Open("Librarybooks.txt", FileMode.OpenOrCreate,FileAccess.ReadWrite);
var sw = new StreamWriter(fs);
var sr = new StreamReader(fs);
sw.WriteLine(title.ToCharArray());
sw.WriteLine(isbn.ToCharArray());
sw.WriteLine(author.ToCharArray());
sw.WriteLine(publish_date.ToCharArray());
Console.WriteLine("Book added Successfully!!");
}
static void list_books()
{
//Here is where I want to read from so I can just call the list_books method.
//But I can't access the StreamReader or StreamWriter
//I just want to be able to read from the file.
}
答案 0 :(得分:2)
MSDN提供了如何执行这两项操作的示例
从他的示例中可以看出,您不需要将字符串转换为字符数组来编写它们。
您还会注意到使用using
关键字的两个示例。有一个解释为什么你想在这个问题中使用那个结构(可能还有很多其他的):When should I use “using” blocks in C#?
看起来你已经喜欢File
类,你可以利用其中专为处理文本文件而设计的其他方法。您可以根据行或整个内容决定是否要写入/读取文件。这里有一些如何使用File
类的例子:
根据代码,您似乎刚开始编程,请考虑将代码放到CodeReview。这样,您可以获得有关如何编写更好代码的有用提示。
答案 1 :(得分:1)
private const string FILE_PATH = "Librarybooks.txt";
static void addbook()
{
//Here is where I get my strings that I will write
Console.Write("Book Title:");
string title = Console.ReadLine();
Console.Write("ISBN#:");
string isbn = Console.ReadLine();
Console.Write("Author:");
string author = Console.ReadLine();
Console.Write("Publish Date:");
string publish_date = Console.ReadLine();
//Here Is where I create the Stream Reader and Writer
//And where I write to the file
using (var fs = File.Open(FILE_PATH, FileMode.OpenOrCreate,FileAccess.ReadWrite))
{
using (var sw = new StreamWriter(fs))
{
using (var sr = new StreamReader(fs))
{
sw.WriteLine(title.ToCharArray());
sw.WriteLine(isbn.ToCharArray());
sw.WriteLine(author.ToCharArray());
sw.WriteLine(publish_date.ToCharArray());
Console.WriteLine("Book added Successfully!!");
}
}
}
}
static void list_books()
{
using (StreamReader sr = new StreamReader(FILE_PATH))
{
string fileContent = sr.ReadToEnd();
}
}