如何在一种方法中写入文本文件,然后从另一种方法读取
本文关键字:方法 文件 文本 然后 读取 另一种 一种 | 更新日期: 2023-09-27 17:56:20
我正在尝试制作流编写器,然后将控制台中的一些输入写入文件,然后读出内容。唯一的问题是我想用两种不同的方法做到这一点。从这里写: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.
}
MSDN 提供了如何执行这两件事的示例
- 如何:向文件写入文本
- 如何:从文件中读取文本
从示例中可以看出,您无需将字符串转换为字符数组即可编写它们。
您还会注意到这两个示例都使用 using
关键字。 有一个解释,为什么你想在这个问题(可能还有许多其他问题)中使用该结构:我什么时候应该在 C# 中使用"使用"块?
看起来您已经喜欢File
类,您可以利用其中专门为处理文本文件而设计的其他方法。 您可以决定是要根据行还是整个内容写入/读取文件。 这里有如何使用 File
类的示例:
- 如何:写入文本文件
- 如何:从文本文件中读取
根据代码看起来你刚刚开始编程,考虑把你的代码放到CodeReview上。 通过这种方式,您可以获得有关如何编写更好代码的有用提示。
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();
}
}